文件服务器分布式系统安装手册

本文档详细的介绍了FastDFS的最小集群安装过程。集群环境如下:

tracker:20.2.64.133 。用于调度工作,在访问上起负载均衡的作用。

group1:

storage1: 20.10.129.150。存储节点存储文件,完成文件管理的所有功能。

storage2: 20.12.1.73。

group2:

storage2:20.12.1.74

以下将详细的介绍此分布式的安装过程,针对不同的系统,安装过程中部分细节(存储路径设置等)可能稍有不同,但基本步骤相同。

第一步安装libevent

在搭建分布式环境之前,需要确保已经安装了libevent,FastDFS安装时对libevent的版本有一定要求。注需要卸载重装系统自带的libevent。使用最新的stable版本本示例中使用的版本为libevent-2.0.21-stable。注意,此步骤需要在所有机器上都执行,否则会导致FastDFS安装失败。

1:判断是否安装了libevent

>> rpm -qa|grep libevent

如果有输出,则说明已经安装了libevent

Fastdfs对libevent版本有要求,所以先删除系统自带的libevent,然后安装最新稳定版本

在本示例中,输出为libevent-1.4.13-1.el6.x86_64

2:卸载已有的libevent

>> rpm -e libevent --nodeps

3:安装最新的libevent

本示例的libevent使用版本为libevent-2.0.21-stable.tar.gz

安装libevent

>> tar zvxf libevent-2.0.21-stable.tar.gz

>> cd libevent-2.0.21-stable

>> ./configure --prefix=/usr

>> make

>>make install

4:检查是否安装成功

>> ls –al /usr/lib |grep libevent(或者>> ls –al /usr/local/lib |grep libevent)若有结果,则说明安装正确

注意:

1) 如果是在32为系统上安装,且libevent 的安装目录在/usr/local/lib下,则还需要建立libevent-2.0.so.5 到/usr/lib的软链接,这样其他程序运行时才可以找到libevent库

>> ln –s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5

2) 如果是在64位系统,需要创建一个libevent-2.0.so.5 到/usr/lib64的软链接

>> ln -s /usr/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 (假设libevent 的安装目录在/usr/lib下)

到此一步,安装libevent工作完毕。

第二步安装FastDFS

本示例中使用的FastDFS版本为4.0.6。

安装FastDFS

>> tar zvxf FastDFS_v4.06.tar.gz

>> cd FastDFs

>> ./make.sh

>> ./make.sh install

注意上面两步,检查是否出错,如果出错,则说明上面的libevent没有安装好

安装成功后,FastDFS 安装在/usr/local/bin中。配置文件在/etc/fdfs中

至此,FastDFS安装完毕

此步骤需要在所有机器上都执行。

第三步安装nginx以及fastdfs-nginx-module(只需在storage)

FastDFS通过HTTP服务器来提供HTTP服务。为了支持高并发的访问,以及提供负载均衡等高性能的服务,本示例使用nginx作为HTTP服务器,FastDFS为我们提供了Nginx上使用的FastDFS模块(fastdfs-nginx-module)。此步操作只需要在storage上执行。tracker

上可不执行。

1:fastdfs-nginx-module安装:

>>  tar -zxvf fastdfs-nginx-module_v1.11.tar.gz    (解压后的路径为/home/chenfeic/fastdfs/fastdfs-nginx-module)

Nginx需要依赖第三方的库 nginx的gzip模块需要zlib库,rewrite模块需要pcre库,那么我们来依次安装它们。

2zlib库安装:

>> tar -vxzf zlib-1.2.8.tar.gz    (本示例中解压位置为/home/chenfeic/fastdfs/zlib-1.2.8)

>>cd zlib-1.2.8

>> ./configure --prefix=/usr/local/zlib   (设置安装路径)

>> make

>> make install

3pcre库安装:

>> tar -vxzf pcre-8.33.tar.gz  (本示例中解压位置为--with-pcre= /home/chenfeic/ fastdfs / pcre-8.33 )

>> cd prce-8.33

>> ./configure --prefix=/usr/local/pcre

--libdir=/usr/local/lib/pcre --includedir=/usr/local/include/pcre

>> make

>> make install

4:nginx安装:

>> tar -zxvf nginx-1.4.4.tar.gz

>> cd nginx-1.4.4

>>./configure --prefix=/usr/local/nginx --with-zlib=/home/chenfeic/fastdfs/zlib-1.2.8  --with-pcre=/home/chenfeic/fastdfs/pcre-8.33 --sbin-path=/usr/local/nginx --add-module=/home/chenfeic/fastdfs/fastdfs-nginx-module/src

>> make

>> make install

注意:--with-pcre --with-zlib 后面的路径都是源码路径,而不是编译后的包。在实际的过程中,此路径根据具体情况填写。

至此,我们的nginx安装成功,nginx默认是80端口,为了防止与其他服务冲突,建议换成其他端口(后续章节有详细介绍)。

此步骤需要在所有storage节点上都执行。(tracker节点不需要执行)

第四步配置及启动FastDFS

1:tracker配置(只需在跟踪器节点配置)

修改tracker的配置文件tracker.conf。该文件位置在/etc/fdfs/tracker.conf。主要修改以下两处,如有其他调整,可参考FastDFS文档自行调整。

>> /etc/fdfs/tracker.conf

base_path=/home/chenfeic/fastdfs/tracker    ====>放置data和log的目录。这个路径必须存在

##include http.conf 修改为#include http.conf    ====> 这里一定要注意!是 #include,不是include!!! 如果没有此配置项,则不需要处理

 

启动tracker

>> /usr/local/bin/fdfs_tracker /etc/fdfs/tracker.conf

检查是否正常启动

>> netstat –anp|grep –w fdfs

看是否有输出,且22122端口已启动

2:storage配置(只需在存储节点配置,同一group节点的配置是一样的)

1)修改nginx端口(可选)

nginx 默认端口号为80,为了防止冲突,可以设置为其他端口,本示例中将其修改为8080。

修改/usr/local/nginx/conf/nginx.conf

>> vim /usr/local/nginx/conf/nginx.conf

Server {
           listen 8080(从80改为8080)

}

2)支持FastDFS模块

在nginx的server配置段中增加 /group1/M00的location声明

storage $> vim /usr/local/nginx/conf/nginx.conf

location /group1 /M00
//注意:此处如果是在group1就写成group1/M00。如果是group2节点就写group2/M00。依次类推。

root  /home/chenfeic/ fastdfs /storage/data; //必须保证路径存在,若不存在就创建

ngx_fastdfs_module;  注意这两行都有分号

}(其中/home/chenfeic/ fastdfs /storage/为storage中配置的store_path0路径,data目录一定要加上

 给 storage 的存储目录做一个软连接

> ln -s /home/chenfeic/ fastdfs /storage/data  /home/chenfeic/
fastdfs /storage /data /M00

3)修改storage配置

修改storage的配置文件storage.conf。该文件位置在/etc/fdfs/storage.conf。主要修改以下几如有其他调整,可参考FastDFS文档自行调整

group_name=group1 ====>
此台storage server所属的服务器组名。此处如果是在group1就写成group1。如果是group2节点就写group2。依次类推。

base_path=/home/chenfeic/
fastdfs /storage ====> 放置data和log的目录。此路径必须保证存在。

store_path0=/home/chenfeic/
fastdfs /storage      
====> 放置文件的目录,此路径必须保证存在,建议跟base_path保持一致(/home/chenfeic/ fastdfs /storage与nginx server段中的设置保持一致,

tracker_server=20.2.64.133:22122         ====> tracker server的ip和端口,此处可以写多个tracker
server,每行一个,因为本示例中只有一个tracker,所以只需写一个。

http.disabled=true                    ====> 关闭内置的web
server,如果有此配置项就设置,否则就不用设置。

http.server_port=8080                    ====> web server的端口改成8080(与nginx 端口一致)

4)修改fastdfs-nginx-module配置

拷贝mod_fastdfs.conf
到/etc/fdfs目录下

>>cp
/home/chenfeic/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf  /etc/fdfs/

5)修改mod_fastdfs.conf配置文件

>> vim /etc/fdfs/mod_fastdfs.conf

base_path=/home/chenfeic/
fastdfs /storage     
  ====> 放置log的目录,与storage中的配置保持一致。

tracker_server=20.2.64.133:22122         ====> tracker server的ip和端口,此处可以写多个tracker
server,每行一个,因为本示例中只有一个tracker,所以只需写一个。

group_name=group1                     ====> 此台storage
server所属的服务器组名。此处如果是在group1就写成group1。如果是group2节点就写group2。依次类推。

url_have_group_name = true             ====>
在URL中包含group名称。一定要设置true

store_path0=/home/chenfeic/
fastdfs /storage            ====> 放置文件的目录,与storage中保持一致

response_mode=proxy               
====> 对文件同步延迟的处理方式,通过redirect跳转和proxy代理两种方式解决

group_count=2       ====>group的个数,在本示例中有两个group,所以设为2

 

到此,配置已经完成,启动nginx和相关storage

>>/usr/local/nginx/nginx

>> /usr/local/bin/fdfs_storage /etc/fdfs/ storage.conf

检查是否正常启动

>> netstat –anp|grep –w
8080  看8080端口是否启动

3:测试是否正常安装

    此步骤在tracker或者storage都可以测试,本示例中在storage上测试,修改client.conf配置文件。

> vim
/etc/fdfs/client.conf

base_path=/home/chenfeic/ fastdfs

tracker_server=20.2.64.133:22122

测试

>vim hello.txt (创建一个测试的文件)

> /usr/local/bin/fdfs_test / etc/fdfs/client.conf
 upload  hello.txt

查看结果,看文件是否正确上传

 

 

可以在任何storage机器上执行如下命令,查看fastdfs集群状态,如果各个storage状态都为ACTIVE,则搭建成功。

/usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf

关闭tracker(storage)

  /usr/local/bin/stop.sh /usr/local/bin/fdfs_trackered(fdfs_storaged) /etc/fdfs/tracker.conf(storage.conf)

  或者 killall fdfs_trackered(storaged)  -------注意,千万不要使用-9强行杀死进程。否则可能会导致binlog数据丢失的问题。

 重启tracker(storage)

/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackered(fdfs_storaged) /etc/fdfs/tracker.conf(storage.conf)

删除storage

 /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf delete group2 20.12.1.73(删除group2中ip为20.12.1.73的storage)

注意:在配置过程,要注意防火墙的设置。关闭防火墙,或者设置对相关端口例外。

FastDFS安装配置手册的更多相关文章

  1. QC邮件转发工具Mail Direct安装配置手册

    QC邮件转发工具Mail Direct安装配置手册 2010-06-11 10:00:56| 分类: 软件测试 | 标签: |举报 |字号大中小 订阅 QC邮件转发工具安装配置手册 由于公司没有独立的 ...

  2. fastDFS 安装 配置 使用

    fastDFS 安装 配置 使用 关于安装 本文采用的是源码的安装方式,其他安装方式请自行百度 简单介绍 1.背景 FastDFS是一款开源的.分布式文件系统(Distributed File Sys ...

  3. Git 安装配置手册

    Git 安装配置手册 首先我们要了解 Git 是类似于 SVN 用来管理项目的 首先要先下载 Git ,这个东西相当于一个核,是该功能的核心 下载地址(<https://gitforwindow ...

  4. fastdfs 安装配置

      介绍文档   1.安装 # wget # tar xf download # cd FastDFS/ # ./make.sh 运行文件 有报错信息 compilation terminated. ...

  5. FastDFS安装配置

    FastDFS FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下载等服务 ...

  6. FastDFS_v5.05+nginx+cache集群安装配置手册

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.FastDFS简单介绍 FastDFS是由淘宝的余庆先生所开发,是一个轻量级.高性能的开源分布式文件系统, ...

  7. 潭州课堂25班:Ph201805201 django 项目 第三十八课 后台 文章发布,FastDFS安装 配置(课堂笔记)

    , .安装FastDFS # 从docker hub中拉取fastdfs镜像docker pull youkou1/fastdfs # 查看镜像是否拉取成功docker images # 安装trac ...

  8. Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~)

    http://blog.csdn.net/licongcong_0224/article/details/12972889 历时一周多,终于搭建好最新版本hadoop2.2集群,期间遇到各种问题,作为 ...

  9. Hadoop2.2.0安装配置手册

    第一部分 Hadoop 2.2 下载 Hadoop我们从Apache官方网站直接下载最新版本Hadoop2.2.官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独 ...

随机推荐

  1. 2016022608 - redis字符串命令集合

    redis字符串命令: Redis字符串命令用于在Redis管理字符串值.使用Redis字符串命令的语法如下所示: redis 127.0.0.1:6379> COMMAND KEY_NAME ...

  2. Spring(一)——总体介绍

           spring框架,是进行对象管理,对象关联,解耦的一个中间层框架.SSH(Struts+Spring+hibernate)三大Spring在中间就起着一个承上启下的作用.好,首先我们先来 ...

  3. 转:靠谱的代码和DRY

    http://www.cppblog.com/vczh/archive/2014/07/15/207658.html 靠谱的代码和DRY 上次有人来要求我写一篇文章谈谈什么代码才是好代码,是谁我已经忘 ...

  4. [BZOJ 3620] 似乎在梦中见过的样子 【KMP】

    题目链接:BZOJ - 3620 题目分析 这道题使用 KMP 做 O(n^2) 的暴力就能过. 首先,我们依次枚举字串左端点 l ,然后从这个左端点开始向后做一次 KMP. 然后我们枚举右端点 r  ...

  5. Codeforces Round #204 (Div. 2): A

    超级大水题: 只要用到一个小学用过的结论就可:能被9整除的数它的各位数相加能被9整除: 代码: #include<iostream> #define maxn 1005 using nam ...

  6. call和apply还有bind

    有图有真相 function myfun1(){ //这是私有属性 var private1 = "这是私有属性1"; var privateMethod = function() ...

  7. 【HDU4552】 怪盗基德的挑战书(后缀数组)

    怪盗基德的挑战书 Problem Description “在树最美丽的那天,当时间老人再次把大钟平均分开时,我会降临在灯火之城的金字塔前,带走那最珍贵的笑容.”这是怪盗基德盗取巴黎卢浮宫的<蒙 ...

  8. 【转】微信Android SDK示例代码及运行方法

    原文网址:http://blog.csdn.net/icyfox_bupt/article/details/23742217 最近在研究微信SDK,无奈网上好使的教程太少,对于程序员来说最好的东西,一 ...

  9. 【转】XCode快捷键

    原文网址:http://www.cnblogs.com/yjmyzz/archive/2011/01/25/1944325.html 1. 文件 CMD + N: 新文件CMD + SHIFT + N ...

  10. 从PowerDesigner概念设计模型(CDM)中的3种实体关系说起

    转:http://www.cnblogs.com/xingyukun/archive/2007/08/02/840293.html CDM是大多数开发者使用PD时最先创建的模型,也是整个数据库设计最高 ...