【FastDFS篇】FastDFS单节点安装及使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenshi_2753/article/details/79591084

FastDFS官网地址(中):http:www.csource.org/
FastDFS官网地址(英):http://code.google.com/p/fastdfs/
软件包下载地址:http://sourceforge.net/projects/fastdfs/files/
源码包下载地址:https://github.com/happyfish100/
学习地址:http://bbs.chinaunix.net/forum-240-1.html

第一部分:简介

  • 1、FastDFS是一个人开源的轻量级的分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务。如,相册网站、视频网站等。
  • 2、FastDFS实现了软件方式的RAID,可以使用廉价的IDE硬盘进行存储。
  • 3、支持存储服务器在线扩容
  • 4、支持相同内容的文件只保存一份,节约磁盘空间
  • 5、FastDFS只能通过Client API访问,不支持POSIX访问方式

系统架构-架构图:
这里写图片描述

系统架构-上传文件流程图:
这里写图片描述
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传

系统架构-下载文件流程图:
这里写图片描述
1. client询问tracker下载文件的storage,参数为文件标识(组名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载

备:相关术语
Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的枢纽。
Storage Server:存储服务器,文件和meta data都保存到存储服务器上
group:组,也可称为卷。同组内服务器上的文件是完全相同的
文件标识:包括两部分:组名和文件名(包含路径)
meta data:文件相关属性,键值对(Key Value Pair)方式,如:width=1024,heigth=768

第二部分:安装

  • 一、准备工作(俩台机器同时进行)
  • 1.准备c的编译环境:yum install make cmake gcc gcc-c++
  • 1.1.上传文件:
    fastdfs_client_java._v1.25.tar.gz
    fastdfs-nginx-module_v1.16.tar.gz
    FastDFS_v5.05.tar.gz
    ngx_cache_purge-2.3.tar.gz

    (下载地址:点我噢 密码:2x9m)

  • 2.安装libfastcommon(俩台机器同时进行)

    • 2.1.上传libfastcommon-master.zip到/usr/local/software下
    • 2.2.进行解压libfastcommon-master.zip:
      命令:unzip libfastcommon-master.zip -d /usr/local/fast/
    • 2.3.进入目录:cd /usr/local/fast/libfastcommon-master/
    • 2.4.进行编译和安装:
      命令:./make.sh
      命令:./make.sh install
      备注:注意看默认安装的路径:libfastcommon默认安装到了/usr/lib64/这个位置
    • 2.5.进行软件创建。FastDFS主程序设置的目录为/usr/local/lib/,所以我们需要创建/
      usr/lib64/下的一些核心执行程序的软连接文件。
      命令:mk dir /usr/local/lib/
      命令:ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
      命令:ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
      命令:ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
      命令:ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
  • 3.安装FastDFS
    • 3.1 进入到cd /usr/local/software下,解压FastDFS_v5.05.tar.gz文件
      命令:cd /usr/local/software
      命令:tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
    • 3.2 安装编译
      命令:cd /usr/local/fast/FastDFS/
      编译命令:./make.sh
      安装命令:./make.sh install
    • 3.3.采用默认安装方式脚本文件说明:
      1、服务脚本在:cd /etc/init.d && ls | grep fdfs
      /etc/init.d/fdfs_storaged
      /etc/init.d/fdfs_trackerd

      2、配置文件在:cd /etc/fdfs
      /etc/fdfs/client.conf.sample
      /etc/fdfs/storage.conf.sample
      /etc/fdfs/tracker.conf.sample

      3、命令行工具在/usr/bin/目录下
      Fdfs_*的一些列执行脚本
      cd /usr/bin/ && ls | grep fdfs
      4、因为FastDFS服务脚本设置的bin目录为/usr/local/bin/下,但是实际我们安装在了/usr/bin/下面。所以我们需要修改FastDFS配置文件中的路径,也就是需要修改俩
      个配置文件:
命令:vim /etc/init.d/fdfs_storaged
进行全局替换命令:%s+/usr/local/bin+/usr/bin
命令:vim /etc/init.d/fdfs_trackerd
进行全局替换命令:%s+/usr/local/bin+/usr/bin
  • 4、配置跟踪器(注意是tracker的节点)
    • 4.1 进入 cd
      /etc/fdfs/目录配置跟踪器文件(注意是tracker节点),把tracker.conf.samp
      le文件进行cope一份:去修改tracker.conf文件
      cd /etc/fdfs cp tracker.conf.sample tracker.conf
    • 4.2 修改tracker.conf文件
      命令:vim /etc/fdfs/tracker.conf
      如下图所示:我们暂时修改配置文件里的base_path即可。
      这里写图片描述

修改为自己的路径地址:base_path=/fastdfs/tracker
注意:对于tracker.conf配置文件参数解释可以找官方文档,地址为:
http://bbs.chinaunix.net/thread-1941456-1-1.html

    • 4.3 最后我们一定要创建之前定义好的目录(也就是/fastdfs/tracker):
      命令:mkdir -p /fastdfs/tracker
    • 4.4 关闭防火墙:(我们在学习时可以不用考虑防火墙的问题)
      Vim /etc/sysconfig/iptables
      添加:-A INPUT -m state –state NEW -m tcp -p tcp –dport 22122 -j ACCEPT
      重启:service iptables restart
    • 4.5 启动跟踪器
      如图所示:cd /fastdfs/tracker/ && ll
      测试为空。
      启动tracker命令:/etc/init.d/fdfs_trackerd start
      查看进程命令:ps -el | grep fdfs
      这里写图片描述
      cd /fastdfs/tracker/ && ll
      这里写图片描述
      停止tracker命令:/etc/init.d/fdfs_trackerd stop
      这里写图片描述
    • 4.6.可以设置开机启动跟踪器:(一般生产环境需要开机启动一些服务,如keepalived、linux、tomcat等等)
      命令:vim /etc/rc.d/rc.local
      加入配置:/etc/init.d/fdfs_trackerd start
  • 5.配置FastDFS存储(另外一个非tracker节点!)

    • 5.1进入文件目录:cd /etc/fdfs/,进行copy storage文件一份
      命令:cd /etc/fdfs/
      命令:cp storage.conf.sample storage.conf

    • 5.2 修改storage.conf文件
      命令:vim /etc/fdfs/storage.conf
      修改内容:
      base_path=/fastdfs/storage
      store_path0=/fastdfs/storage
      tracker_server=192.168.1.172:22122
      http.server_port=8888

    • 5.3 创建存储目录:mkdir -p /fastdfs/storage
    • 5.4 打开防火墙:
      命令:vim /etc/sysconfig/iptables
      添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
      重启:service iptables restart
    • 5.5 启动存储(storage)
      命令:/etc/init.d/fdfs_storaged start (关闭:/etc/init.d/fdfs_storaged stop)
      (初次启动成功后会在/fastdbf/storage/ 目录下创建 data、logs俩个目录)
    • 5.6 查看FastDFS storage 是否启动成功
      命令:ps -ef | grep fdfs
      这里写图片描述
      并且我们进入到/fastdfs/storage/data/文件夹下会看到一些目录文件(256*256)如下:
      命令:cd /fastdfs/storage/data/ && ls
      这里写图片描述
    • 5.7同理,也可以设置开机启动存储器:(一般生产环境需要开机启动一些服务,
      如keepalived、linux、tomcat等等)
      命令:vim /etc/rc.d/rc.local
      加入配置:/etc/init.d/fdfs_storaged start
      到此为止我们的FastDFS环境已经搭建完成!
  • 6、测试环境

    • 6.1 我们先使用命令上传一个文件。注意:是在tracker(跟踪器)中上传。
      首先我们在跟踪器(tracker节点)里copy一份client.conf文件。
      命令:cd /etc/fdfs/
      命令:cp client.conf.sample client.conf

    • 6.2 编辑client.conf文件
      命令:vim /etc/fdfs/client.conf
      修改内容:
      base_path=/fastdfs/tracker
      tracker_server=trackerIP:22122

    • 6.3 我们找到命令的脚本位置,并且使用命令,进行文件的上传:
      命令:cd /usr/bin/
      命令:ls | grep fdfs
      这里写图片描述

    • 6.4 使用命令fdfs_upload_file进行上传操作:
      首先,我们先看一下存储器(192.168.1.173),进入到data下,在进入00文件夹
      下,发现00文件夹下还有一堆文件夹,然后继续进入00文件夹下,最终我们所进入的文件夹为:
      /fastdfs/storage/data/00/00 里面什么文件都没有。
      然后,我们进行上传操作,比如把之前的/usr/local/software/文件夹下的某一个
      文件上传到FastDFS系统中去,在跟踪器(trancker节点)中上传文件,命令如下:
      /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/FastDFS_v5.05.tar.gz(临时测试用,后面举例用图片)
      最后我们发现,命令执行完毕后,返回一个group1/M00/00/00/…的ID,其实就
      是返回当前所上传的文件在存储器(storeage节点)中的哪一个组、哪一个目
      录位置,所以我们查看存储器中的/fastdfs/storage/data/00/00文件夹位置,发现
      已经存在了刚才上传的文件,到此为止,我们的测试上传文件已经OK了。如下
      这里写图片描述

  • 7、FastDFS与Nginx整合

    • 7.1 首先两台机器里必须先安装nginx
    • 7.2 然后我们在存储节点上(storeage节点)安装fastdfs-nginx-module_v1.16.tar.gz包进行整合。
      cd /usr/local/software/
      tar -zxvf /usr/local/software/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
    • 7.3 进入目录:cd fastdfs-nginx-module/src/
      这里写图片描述
    • 7.4 编辑配置文件config
      命令:vim /usr/local/fast/fastdfs-nginx-module/src/config
      修改内容:去掉下图中的local文件层次
      这里写图片描述
      修改完毕为
      这里写图片描述
    • 7.5 FastDFS与nginx进行集成
      首先把之前的nginx进行删除
      目录命令:cd /usr/local/
      删除命令:rm -rf nginx
      进入到nginx目录命令:cd nginx-1.6.2/
      加入模块命令:./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
      重新编译命令:make && make install
    • 7.6 复制fastdfs-ngin-module中的配置文件,到/etc/fdfs目录中,如图所示:
      这里写图片描述
      copy命令:cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
    • 7.7 进行修改 /etc/fdfs/ 目录下,我们刚刚copy过来的mod_fastdfs.conf 文件。
      命令:vim /etc/fdfs/mod_fastdfs.conf
      修改内容:比如连接超时时间、跟踪器路径配置、url的group配置、
      connect_timeout=10
      tracker_server=192.168.1.172:22122
      url_have_group_name = true
      store_path0=/fastdfs/storage
    • 7.8 复制FastDFS里的2个文件,到/etc/fdfs目录中,如图所示:
      这里写图片描述
      目录命令:cd /usr/local/fast/FastDFS/conf/
      Copy命令:cp http.conf mime.types /etc/fdfs/
    • 7.9.创建一个软连接,在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据的目录。
      ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
    • 7.10 修改Nginx配置文件,
      cd /usr/local/nginx/conf/
      命令:vim nginx.conf
      修改配置内容如下图所示:
      vim nginx.conf
      这里写图片描述
      修改内容为:
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
#alias /fastdfs/storage/data;
ngx_fastdfs_module;
}

注意:nginx里的端口要和第五步 配置FastDFS存储中的storage.conf文件配置一致,也就是(http.server_port=88880)

  • 7.11 最后检查防火墙,然后我们启动nginx服务
    启动命令:/usr/local/nginx/sbin/nginx,我们刚才上传了一个文件,上传成功,

现在我们使用这个ID用浏览器访问地址:【访问storeage节点的nginx!!!】

http://192.168.159.40:8888/group1/M00/00/00/wKifKFqx1viANk_pAAIXab_3x9U382.PNG
我们就可以下载这个文件了,如果是图片及直接会显示。
这里写图片描述
运维注意:我们在使用FastDFS的时候,需要正常关机,不要使用kill -9
强杀FastDFS进程,不然会在文件上传时出现丢数据的情况。
到此,我们的FastDFS与Nginx整合完毕。

八:启动停止服务步骤如下:
启动命令:
启动tracker命令:/etc/init.d/fdfs_trackerd start
查看进程命令:ps -el | grep fdfs
启动storage命令:/etc/init.d/fdfs_storaged start
查看进程命令:ps -el | grep fdfs
启动nginx命令:/usr/local/nginx/sbin/nginx
停止命令:
停止tracker命令:/etc/init.d/fdfs_trackerd stop
关闭storage命令:/etc/init.d/fdfs_storaged stop
关闭nginx命令:/usr/local/nginx/sbin/nginx -s stop

猜你喜欢

转载自blog.csdn.net/chenshi_2753/article/details/79591084