fastdfs安装

FastDFS服务

1.介绍
  • FastDFS 是一个开源的高性能分布式文件系统(DFS)。
  • 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。
  • 主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。
2.角色介绍

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

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

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

  3. Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。

3.存储策略

为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。

在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

FastDFS 安装(源码安装)

实验环境介绍

前面我们介绍了一些fastDFS的基本概念下面

我们来介绍一下当前的实验环境:

在您的左侧是关于实验的说明,在您的右边是一个Cent OS 7 的操作面板。

在您当前的工作目录 /root 下我们已经为您下载好了fastdfs源码, 您可以使用ls进行查看。

1. 环境准备(实验环境已经下载完成,仅供参考)

1.fastDFS下载
下载地址:https://github.com/happyfish100
下载的安装包如下

 libfatscommon:FastDFS分离出的一些公用函数包
 FastDFS:FastDFS程序
 fastdfs-nginx-module:FastDFS和nginx的关联模块

2.nginx 下载
下载地址:http://nginx.org/en/download.html
下载安装包:1.16.1

3.安装fastdfs 需要的插件

yum install -y gcc gcc-c++
yum -y install libevent
环境准备完成了,我们来正式开始安装吧
2. libfastcommon服务安装

libfastcommon为FastDFS操作的基础库,FastDFS没有使用标准的库,而是封装了一 套和FastDFS相关的库,下面我们使用make脚本进行安装 libfastcommon

/root/libfastcommon-master/make.sh install

安装成功可以从控制台看到安装目录为

/usr/lib64
/usr/lib
/usr/incloude/fastcommon
3. fastdfs 主程序安装

前面我们介绍了,fastdfs主要的角色为storage tracker 和客户端
所以主程序主要提供storagetracker的配置文件和启动脚本
下面让我们开始安装主程序吧

 /root/fastdfs-master/make.sh install 

从控制台可以看到安装完成后目录为

mkdir -p /usr/bin
mkdir -p /etc/fdfs
mkdir -p /usr/lib64
mkdir -p /usr/lib 
4. 配置文件同步

下面我们把安装文件夹下的配置,拷贝到/etc/fdfs 目录下,来进行服务启动之前的配置吧

/root/fastdfs-master/conf/*  /etc/fdfs
5.配置tracker服务

我们先回顾一下tracekr的概念,跟踪服务器,主要做调度工作,起到流量均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
tracker服务是客户端请求和storage存储的重要桥梁,下面我们来配置它
首先我们进入fdfs目录创建tracker目录

cd /etc/fdfs
mkdir -p /usr/local/fastdfs/tracker 

下面我们修改tracker配置文件,保存并退出
修改的主要内容是tracker数据的base目录

vim tracker.conf
base_path=/usr/local/fastdfs/tracker
6.启动tracker服务

配置都完成了,下面我们通过fastdfs提供的tracker启动程序来启动traceker服务吧

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

到现在已经完成了tracker的启动,那么启动的是否正常呢,我们通过
检查进程启动情况,来检查一下服务是否启动完成

ps -ef |grep  "tracker"
7. 配置storage服务

tracker服务已经启动完成了,接下来我们来启动storage服务,先来回顾一下storage服务的概念
存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
本次实验我们以一台storage为例,下面我们进行storage的配置吧
首先进入storage的目录

cd  /etc/fdfs
mkdir -p  /usr/local/fastdfs/storage

下面我们需要修改storage的工作空间,还有存储空间
因为storage需要和tracker交互存储客户端传来的数据,所以我们还需要配置
tracker的地址,我们开始进行配置

 vim storage.conf
# 修改storage的工作空间
base_path=/usr/local/fastdfs/storage
# 修改storage的存储空间
store_path0=/usr/local/fastdfs/storage
# 修改tracker的地址和端口号,用于心跳
tracker_server=本机IP地址:22122

8. 启动storage服务

配置完成后,让我们用fastdfs的storage的启动命令,来启动它吧

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

服务启动完成了,我们还是先来检查服务启动情况

ps -ef |grep "storage"
9. 客户端配置

前面服务端已经安装完成了。下面我们来安装客户端并且进行服务的整体测试
首先进入client目录,修改client配置文件

 cd /etc/fdfs
 mkdir /usr/local/fastdfs/client

我们先修改客户端的base目录,在修改
tracker的ip,修改的时候需要根据实际tracker的ip地址来进行修改

  vim client.conf
   base_path=/usr/local/fastdfs/client
   tracker_server=本机IP地址:22122
10.测试上传图片

恭喜你,到现在fastdfs已经安装完成了,下面我们通过一张测试图片来测试服务
可以上传/etc/fdfs 目录下的anti-steal.jpg 图片测试

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg

上传成功以后文件存储目录

/usr/local/fastdfs/storage/data
11. fastdfs_nginx模块安装准备

因为fastdfs安装好以后是无法通过http访问的,这个时候就需要借助nginx了,所以我们需要安装fastdfs的第三方模块到nginx中。
nginx 和 fastdfs 要在一个节点上,下面我们开始配置安装nginx吧

1.首先复制mod_fastdfs文件到 fdfs

cp  /root/fastdfs-nginx-module-master/src/mod_fastdfs.conf    /etc/fdfs

2.接下来修改/fastdfs-nginx-module/src/config文件,主要是修改路径,把local删除,因为fastdfs安装的时候我们没有修改路径,原路径是/usr
所以我们要修改这2个配置
ngx_module_incs=“/usr/include”
CORE_INCS=“$CORE_INCS /usr/include”

vim  /root/fastdfs-nginx-module-master/src
ngx_addon_name=ngx_http_fastdfs_module

if test -n "${ngx_module_link}"; then
    ngx_module_type=HTTP
    ngx_module_name=$ngx_addon_name
    ngx_module_incs="/usr/include"   
    ngx_module_libs="-lfastcommon -lfdfsclient"
    ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c"
    ngx_module_deps=
    CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"
    . auto/module
else
    HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
    NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
    CORE_INCS="$CORE_INCS /usr/include"
    CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient"
    CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"
fi
~
12.安装nginx

1.要安装nginx之前,我们先安装一些必备的软件

 yum install -y pcre pcre-devel
 yum install -y zlib zlib-devel
 yum install -y openssl openssl-devel
 mkdir  -p /var/temp/nginx

2.因为要进行编译安装所以我们需要设置一下nginx的pid, 日志模块
端口转发等功能模块的路径

./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=/root/fastdfs-nginx-module-master/src

3.安装
配置完成后,我们通过make来进行服务的安装

make && make install 

4.启动
启动之前我们先通过nginx -t来检查一下配置是否正常

 /usr/local/nginx/sbin/nginx -t
 /usr/local/nginx/sbin/nginx 
13. fastdfs_nginx模块配置

配置fastdfs-nginx 模块之前我们先来介绍一下模块

  • FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 有同步延迟的问题
  • 假设 Tracker 服务器将文件上传到了 10.0.10.121,上传成功后文件 ID已经返回给客户端。
  • 此时 FastDFS 存储集群机制会将这个文件同步到同组存储 10.0.10.121,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 10.0.10.121 上取文件,就会出现文件无法访问的错误
  • 而 fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

我们来修改/etc/mod_fastdfs.conf

mkdir /usr/local/fastdfs/tmp
vim /etc/mod_fastdfs.conf
base_path=/usr/local/fastdfs/tmp
#tracker地址
tracker_server=本机IP地址:22122
url_have_group_name = true
store0_path=/usr/local/fastdfs/storage

添加nginx 关于fastdfs配置

vim /usr/local/nginx/conf  # 在http模块追加配置
server {
    listen       8888;
    server_name  localhost;

    location /group1/M00 {
            ngx_fastdfs_module;
    }

}
/usr/local/nginx/sbin/nginx -t  验证
/usr/local/nginx/sbin/nginx -s reload  重启nginx 
14 访问验证

nginx配置完成后,服务就全安装完成了,我们来测试一下

http://服务IP地址:8888/group1/M00/00/00/CgAKeWG6-bqAZQw-AABdreSfEnY878_big.jpg

FastDFS 安装(docker安装)

1. 获取FastDFS镜像

概念和宿主机一样,我们首先来拉取fastdfs镜像

sudo docker image pull delron/fastdfs:latest
mkdir /var/fdfs/tracker
mkdir /var/fdfs/storage
2.运行tracker 容器

我们将 tracker 运行目录映射到宿主机的 /var/fdfs/tracker目录中。

docker run -dit --name tracker \   
--network=host  \
-v /var/fdfs/tracker:/var/fdfs  \
delron/fastdfs tracker  \
3.运行storage 容器
  • TRACKER_SERVER=Tracker的ip地址:22122(Tracker的ip地址不要使用127.0.0.1)
  • 将 storage 运行目录映射到宿主机的 /var/fdfs/storage目录中。
docker run -dti --name storage  \
--network=host   \
-e TRACKER_SERVER=宿主机IP:22122  \
 -v /var/fdfs/storage:/var/fdfs  \
delron/fastdfs storage  \
4.客户端测试(和宿主机安装方式一样)

修改client配置文件

 cd /etc/fdfs
 mkdir /usr/local/fastdfs/client

tracker的ip根据实际tracker的ip地址配置

  vim client.conf
   base_path=/usr/local/fastdfs/client
   tracker_server=本机IP地址:22122
5.测试上传图片

可以上传/etc/fdfs 目录下的anti-steal.jpg 图片测试

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值