CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)

背景

FastDFS是一个开源的轻量级分布式文件系统,为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,解决了大容量存储和负载均衡的问题,特别适合以文件为载体的在线服务,如相册网站、视频网站等等。对于互联网应用,和其他分布式文件系统相比,优势非常明显。
出于简洁考虑,FastDFS没有对文件做分块存储,因此不太适合分布式计算场景。
在此再次感谢淘宝资深架构师余庆大神开源了如此优秀的轻量级分布式文件系统,本篇文章就记录一下FastDFS的最新版本5.11在CentOS7中的安装与配置。

相关链接

源码地址: https://github.com/happyfish100/
下载地址: http://sourceforge.net/projects/fastdfs/files/
官方论坛: http://bbs.chinaunix.net/forum-240-1.html

环境准备

操作系统:CentOS7
两台服务器:192.168.53.141、192.168.53.142
安装包:

fastdfs-5.11.tar.gz
libfastcommon-1.0.36.tar.gz
fastdfs-nginx-module-master.zip
nginx-1.14.0.tar.gz

服务器规划:
tracker服务器:192.168.53.141
storage服务器: 192.168.53.142

安装包获取

本次安装为目前更新的最新版本,所用到的安装包均来自github上作者最后的releases。
获取FastDFS安装包
目前作者最后一次releases的时间的17年6月3号,对应的最新版本是5.11,直接在余大的GitHub上下载:
https://github.com/happyfish100/fastdfs/releases
CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
获取libfastcommon安装包
目前作者最后一次releases的时间的17年4月5号,对应的最新版本是1.0.36,直接在余大的GitHub上下载:
https://github.com/happyfish100/libfastcommon/releases
CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
获取fastdfs-nginx-module安装包
从github上获取最新的代码
https://github.com/happyfish100/fastdfs-nginx-module
CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
获取nginx安装包
http://nginx.org/en/download.html
CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
获取完成最新安装包之后,上传到/usr/local/src/目录下。

安装说明

FastDFS分为tracker(跟踪器)和storage(存储器);
tracker跟踪器主要做调度工作,在访问上起负载均衡的作用。
storage存储器,文件和meta data都保存到存储服务器上。
group组、卷,组外可横向拓展,组内服务器上文件相互备份,是完全相同的。
两台服务器全部需要安装libfastcommon和FastDFS,不同点为tracker和storage配置不同。

安装FastDFS(全部)

我们准备的两台服务器需要全部安装FastDFS基础环境
安装依赖

#安装依赖
yum -y install gcc-c++ perl

安装libfastcommon类库
FastDFS 5.x 取消了对 libevent 的依赖,添加了对 libfastcommon 的依赖,安装FastDFS必须安装libfastcommon类库

tar -zxvf libfastcommon-1.0.36.tar.gz
cd libfastcommon-1.0.36
./make.sh
./make.sh install

执行./make.sh命令进行编译,没有error信息的话就说明编译成功了,最后再执行./make.sh install进行安装,看到类似如下提示信息就说明libfastcommon已安装成功:
CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
创建软连接
因为 FastDFS 主程序设置的 lib 目录是/usr/local/lib, 所以需要创建软链接(FastDFS主程序安装需要依赖此类库,若不创建软连接会安装失败)
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
安装FastDFS

tar -zxvf fastdfs-5.11.tar.gz
cd fastdfs-5.11
./make.sh
./make.sh install

没有报错信息一般就是安装成功了,安装日志为:CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
相关文件和目录
我们是采用默认安装的方式安装的,安装完成对应的文件和目录如下:

  1. 服务脚本:
    /etc/init.d/fdfs_storaged
    /etc/init.d/fdfs_tracker
  2. 配置文件(配置文件样例):
    /etc/fdfs/client.conf.sample
    /etc/fdfs/storage.conf.sample
    /etc/fdfs/storage_ids.conf.sample
    /etc/fdfs/tracker.conf.sample
  3. 命令工具在/usr/bin/目录下:
    fdfs_appender_test
    fdfs_appender_test1
    fdfs_append_file
    fdfs_crc32
    fdfs_delete_file
    fdfs_download_file
    fdfs_file_info
    fdfs_monitor
    fdfs_storaged
    fdfs_test
    fdfs_test1
    fdfs_trackerd
    fdfs_upload_appender
    fdfs_upload_file
    stop.sh
    restart.sh

    配置FastDFS跟踪器(192.168.53.141)

    复制tracker.conf.sample并重命名为tracker.conf

    cd /etc/fdfs/
    cp tracker.conf.sample tracker.conf

    编辑配置文件
    vi /etc/fdfs/tracker.conf
    主要信息及改动情况如下:

    disabled=false #默认为false 此处不修改 不启用=false就是启用。设计如此,暂不吐槽。
    port=22122 #跟踪器端口号,默认为22122,生产环境可自行修改,这里我暂用默认端口
    base_path=/fastdfs/tracker #目录地址 依实际挂载的数据盘自行设置,根目录必须存在,子目录会自动创建

    其他参数保留默认配置即可,详细的配置信息可参考官方的文档说明
    http://bbs.chinaunix.net/thread-1941456-1-1.html
    创建基础数据目录(base_path对应的路径)
    mkdir -p /fastdfs/tracker
    防火墙中打开跟踪器端口(默认为 22122)

    firewall-cmd --permanent --zone=public --add-port=22122/tcp
    firewall-cmd --reload

    启动tracker
    /etc/init.d/fdfs_trackerd start
    查看tracker是否启动成功
    ps -ef | grep fdfs
    CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
    下面的停止和设置开机启动为非必须的操作,我是不想每次重启服务器都手动启动一遍,就加了开机启动!
    停止tracker
    /etc/init.d/fdfs_trackerd stop
    设置开机启动
    vi /etc/rc.d/rc.local
    添加以下内容:

    ## FastDFS Tracker
    /etc/init.d/fdfs_trackerd start

    由于在centos7中,/etc/rc.d/rc.local文件的权限被降低了,没有执行权限,需要给它添加可执行权限。
    chmod +x /etc/rc.d/rc.local

    配置FastDFS存储器(192.168.53.142)

    复制storage.conf.sample并重命名为storage.conf

    cd /etc/fdfs/
    cp storage.conf.sample storage.conf

    编辑配置文件
    vi /etc/fdfs/storage.conf
    主要信息及改动情况如下:

    disabled=false  #默认为false 此处不修改 不启用=false就是启用。设计如此,这里也暂不吐槽。
    port=23000 #存储器端口号,默认为23000,生产环境可自行修改,这里我暂用默认端口
    base_path=/fastdfs/storage  #目录地址 依实际挂载的数据盘自行设置,根目录必须存在,子目录会自动创建
    store_path0=/fastdfs/storage 
    #存放文件时storage server支持多个路径,如果不配置base_path0,那边它就和base_path对应的路径一样
    tracker_server=192.168.53.141:22122 # tracker_server 的列表 要写端口的哦 (再次提醒是主动连接tracker_server )
    http.server_port=8888 # HTTP服务端口 默认为8888 生产环境可自行修改,这里我暂用默认端口

    其他参数保留默认配置即可,详细的配置信息可参考官方的文档说明
    http://bbs.chinaunix.net/thread-1941456-1-1.html
    创建基础数据目录(base_path对应的路径)
    mkdir -p /fastdfs/storage
    防火墙中打开跟踪器端口(默认为 23000)

    firewall-cmd --permanent --zone=public --add-port=23000/tcp
    firewall-cmd --reload

    启动storaged
    /etc/init.d/fdfs_storaged start
    (初次启动会在/fastdfs/storage目录下生成data和logs目录)
    查看storage是否启动成功
    ps -ef | grep fdfs
    CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
    下面的停止和设置开机启动为非必须的操作,我是不想每次重启服务器都手动启动一遍,就加了开机启动!
    停止storaged
    /etc/init.d/fdfs_storaged stop
    设置开机启动
    vi /etc/rc.d/rc.local
    添加以下内容:

    ## FastDFS Storaged
    /etc/init.d/fdfs_storaged start

    由于在centos7中,/etc/rc.d/rc.local文件的权限被降低了,没有执行权限,需要给它添加可执行权限。
    chmod +x /etc/rc.d/rc.local

    测试文件上传(192.168.53.141)

    修改Tracker服务器中的客户端配置文件

    cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
    vi /etc/fdfs/client.conf

    主要信息及改动情况如下:
    base_path=/fastdfs/tracker
    tracker_server=192.168.53.141:22122
    执行上传命名
    /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/fastdfs-5.11.tar.gz
    返回 ID 号: group1/M00/00/00/wKg1jlrfY6-Ad3ssAAUkKwe5sE4.tar.gz
    (第一个参数为上传配置文件,第二个参数为 需要上传的文件。能返回以上文件 ID, 说明文件上传成功)

    在存储节点上安装nginx

    安装nginx和fastdfs-nginx-modulemok模块
    解压文件

    cd /usr/local/src/
    unzip fastdfs-nginx-module-master.zip
    tar -zxvf nginx-1.14.0.tar.gz

    安装编译 Nginx 所需的依赖包
    yum -y install pcre* zlib zlib-devel
    编译安装 Nginx(添加 fastdfs-nginx-module 模块)

    ./configure --add-module=/usr/local/src/fastdfs-nginx-module-master/src
    make && make install

    复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改

    cp /usr/local/src/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
    vi /etc/fdfs/mod_fastdfs.conf

    修改以下配置:

    connect_timeout=10 #默认为2 改为10 2秒太少了
    base_path=/tmp
    tracker_server=192.168.53.141:22122 #tracker跟踪器地址
    storage_server_port=23000 #storage存储器的端口
    group_name=group1 #组名
    url_have_group_name = true #url hava group name 顾名思义 默认为false 改为true
    store_path0=/fastdfs/storage #存储器存储地址

    复制FastDFS 的部分配置文件到/etc/fdfs 目录

    cd /usr/local/src/fastdfs-5.11/conf/
    cp http.conf mime.types /etc/fdfs/

    在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录
    ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
    配置nginx
    简要配置样例:

    user  root;
    worker_processes  1;
    events {
    worker_connections  1024;
    }
    http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {listen 8888;server_name localhost;location ~/group([0-9])/M00 {#alias /fastdfs/storage/data;ngx_fastdfs_module;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
    }
    }

    防火墙打开8888端口

    firewall-cmd --permanent --zone=public --add-port=8888/tcp
    firewall-cmd --reload

    启动nginx后访问刚刚测试上传的文件地址
    http://192.168.53.142:8888/group1/M00/00/00/wKg1jlrfY6-Ad3ssAAUkKwe5sE4.tar.gz
    能正常下载文件,此时fdfs单节点的安装和配置完成。

转载于:https://blog.51cto.com/zhaobotao/2107094

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剑指 Offer 38. 字符串的排列

题目 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例: 输入:s “abc” 输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”] 限制: 1…

前馈神经网络中的前馈_前馈神经网络在基于趋势的交易中的有效性(1)

前馈神经网络中的前馈This is a preliminary showcase of a collaborative research by Seouk Jun Kim (Daniel) and Sunmin Lee. You can find our contacts at the bottom of the article.这是 Seouk Jun Kim(Daniel) 和 Sunmin Lee 进行合作研究的初步展示 。 您可以在文章底…

hadoop将消亡_数据科学家:适应还是消亡!

hadoop将消亡Harvard Business Review marked the boom of Data Scientists in their famous 2012 article “Data Scientist: Sexiest Job”, followed by untenable demand in the past decade. [3]《哈佛商业评论 》在2012年著名的文章“数据科学家:最性感的工作…

剑指 Offer 15. 二进制中1的个数 and leetcode 1905. 统计子岛屿

题目 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 1&…

httpd2.2的配置文件常见设置

目录 1、启动报错:提示没有名字fqdn2、显示服务器版本信息3、修改监听的IP和Port3、持久连接4 、MPM( Multi-Processing Module )多路处理模块5 、DSO:Dynamic Shared Object6 、定义Main server (主站点) …

leetcode 149. 直线上最多的点数

题目 给你一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例 1: 输入:points [[1,1],[2,2],[3,3]] 输出:3 示例 2: 输入:points [[1,1],[3,…

静态代理设计与动态代理设计

静态代理设计模式 代理设计模式最本质的特质:一个真实业务主题只完成核心操作,而所有与之辅助的功能都由代理类来完成。 例如,在进行数据库更新的过程之中,事务处理必须起作用,所以此时就可以编写代理设计模式来完成。…

6.3 遍历字典

遍历所有的键—值对 遍历字典时,键—值对的返回顺序也与存储顺序不同。 6.3.2 遍历字典中的所有键 在不需要使用字典中的值时,方法keys() 很有用。 6.3.3 按顺序遍历字典中的所有键 要以特定的顺序返回元素,一种办法是在for 循环中对返回的键…

Google Guava新手教程

以下资料整理自网络 一、Google Guava入门介绍 引言 Guavaproject包括了若干被Google的 Java项目广泛依赖 的核心库,比如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [comm…

数据科学领域有哪些技术_领域知识在数据科学中到底有多重要?

数据科学领域有哪些技术Jeremie Harris: “In a way, it’s almost like a data scientist or a data analyst has to be like a private investigator more than just a technical person.”杰里米哈里斯(Jeremie Harris) :“ 从某种意义上说,这就像是数…

初创公司怎么做销售数据分析_为什么您的初创企业需要数据科学来解决这一危机...

初创公司怎么做销售数据分析The spread of coronavirus is delivering a massive blow to the global economy. The lockdown and work from home restrictions have forced thousands of startups to halt expansion plans, cancel services, and announce layoffs.冠状病毒的…

leetcode 909. 蛇梯棋

题目 N x N 的棋盘 board 上,按从 1 到 N*N 的数字给方格编号,编号 从左下角开始,每一行交替方向。 例如,一块 6 x 6 大小的棋盘,编号如下: r 行 c 列的棋盘,按前述方法编号,棋盘格…

Python基础之window常见操作

一、window的常见操作: cd c:\ #进入C盘d: #从C盘切换到D盘 cd python #进入目录cd .. #往上走一层目录dir #查看目录文件列表cd ../.. #往上上走一层目录 二、常见的文件后缀名: .txt 记事本文本文件.doc word文件.xls excel文件.ppt PPT文件.exe 可执行…

WPF效果(GIS三维篇)

二维的GIS已经被我玩烂了,紧接着就是三维了,哈哈!先来看看最简单的效果: 转载于:https://www.cnblogs.com/OhMonkey/p/8954626.html

r软件时间序列分析论文_高度比较的时间序列分析-一篇论文评论

r软件时间序列分析论文数据科学 , 机器学习 (Data Science, Machine Learning) In machine learning with time series, using features extracted from series is more powerful than simply treating a time series in a tabular form, with each date/timestamp …

leetcode 168. Excel表列名称

题目 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。 例如: A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入:columnNumber 1 输出:“A” 示例 2&…

selenium抓取_使用Selenium的网络抓取电子商务网站

selenium抓取In this article we will go through a web scraping process of an E-Commerce website. I have designed this particular post to be beginner friendly. So, if you have no prior knowledge about web scraping or Selenium you can still follow along.在本文…

剑指 Offer 37. 序列化二叉树

题目 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化…

一个简单的 js 时间对象创建

JS中获取时间很常见,凑凑热闹,也获取一个时间对象试试 首先,先了解js的获取时间函数如下: var myDate new Date(); //创建一个时间对象 myDate.getYear(); // 获取当前年份(2位&#x…

裁判打分_内在的裁判偏见

裁判打分News flash: being an umpire is hard. Their job is to judge whether a ball that’s capable of moving upwards of 100 MPH or breaking 25 inches crossed through an imaginary zone before being caught. I don’t think many would argue that they have it ea…