码迷,mamicode.com
首页 > 其他好文 > 详细

CentOS6.4系统下FastDFS部署

时间:2014-07-25 16:40:31      阅读:532      评论:0      收藏:0      [点我收藏+]

标签:http   使用   os   strong   文件   数据   io   width   

 

 

(一)   概述

FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。

FastDFS系统结构如下图所示:

 

上传文件交互过程:
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传。 

下载文件交互过程:

1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。

需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。

 

(二)   安装环境准备

后面加* 表示对各台机器采取相同的操作  

  1. 服务器环境:CentOS6.4_x86-64(需要gcc编译环境)*
  2. 本次实验环境说明:

服务器

Ip

端口

角色

Tracker

192.168.11.224

22122

Tracker server

Storage

192.168.11.225

23000

Storage server

 

  1. 安装包*:

libevent-2.0.21-stable.tar.gz

FastDFS_v3.11.tar.gz

fastdfs-nginx-module_v1.10.tar.gz

nginx-1.5.13.tar.gz

pcre-8.32.tar.gz

4、修改服务器机器名称*:

vi /etc/sysconfig/network

HOSTNAME=localhost  à HOSTNAME=tracker1

如果是storage,则HOSTNAME=storage1,或HOSTNAME=storage2等等

群集类服务器机器名的命名方式以节点名加IP地址后三位,不足三位则以0补充。

 

5、关闭iptables和selinux*

 

(三)   安装libevent

1、卸载系统自带libevent*

# rpm -qa |grep libevent

libevent-1.4.13-4.el6.x86_64

# rpm -e libevent-1.4.13-4.el6.x86_64 --nodeps

2、为Tracker和Storage节点节点安装libevent*

#tar -zxvf libevent-2.0.21-stable.tar.gz

# cd libevent-2.0.21-stable

#./configure
# make && make install

为libevent创建软链接到/lib库下,64位系统对应/lib64 *
ln -s /usr/local/lib/libevent* /lib/
ln -s /usr/local/lib/libevent* /lib64/  

(四)   为 tracker节点安装 FastDFS

1、编译安装*

   #tar -zxvf FastDFS_v3.11.tar.gz

   #cd FastDFS

   如果Trackerd需要使用内置的web server,需要修改make文件

   # vi make.sh

    #WITH_HTTPD=1  à WITH_HTTPD=1

#WITH_LINUX_SERVICE=1 à WITH_LINUX_SERVICE=1 [去掉前面的#号即可]

# ./make.sh

# ./make.sh install

2、创建存储目录*

   # mkdir -p /home/iflytek/fastdfs

3、修改tracker.conf配置

vi /etc/fdfs/tracker.conf

base_path=/home/yuqing/fastdfs à base_path=/home/iflytek/fastdfs

store_group=group2à store_group=group1

##include http.conf  à#include http.conf

4、启动tracker

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

重新启动tracker命令如下:

/usr/local/bin/restart.sh  /usr/local/bin/fdfs_trackerd  /etc/fdfs/tracker.conf

(五)   为storage 节点安装 FastDFS

1、修改storage.conf配置

    # vi /etc/fdfs/storage.conf

base_path=/home/yuqing/fastdfs --> /home/iflytek/fastdfs

store_path0=/home/yuqing/fastdfs --> store_path0=/home/iflytek/fastdfs

group_name=group1

tracker_server=192.168.209.121:22122 --> tracker_server=192.168.11.224:22122

##include http.conf --> #include http.conf

2、取消storage默认的http服务

#HTTP settings

http.disabled=true

3、启动storage

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

重新启动storage命令如下:

/usr/local/bin/restart.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

此时确保可以与tracker通讯,关闭tracker服务器的防火墙或添加入站规则。如果此时出现异常请检查/home/iflytek/fastdfs/logs/storage.log文件的相关内容。

(六)   Nginx在storage节点上安装部署

1、安装 pcre

# tar zxvf pcre-8.32.tar.gz

# cd pcre-8.32

# ./configure
# make
# make install
默认安装到/usr/local/lib下即可。

 

2、安装fastdfs-nginx-module和nginx组件

   #cd /root

   #tar -xzvf fastdfs-nginx-module_v1.10.tar.gz

   # cd /root

   # tar -xzvf nginx-1.5.13.tar.gz

   # cd nginx-1.5.13

   # ./configure  --prefix=/usr/local/nginx  --add-module=/root/fastdfs-nginx-module/src

   #make

   #make install

3、在nginx的server配置段中增加M00的location声明并修改nginx默认工作端口80为8888

 vi /usr/local/nginx/conf/nginx.conf

   server {

    listen       80;     à8888

    server_name  localhost;

 

   location /group1/M00 {    

            root /home/iflytek/fastdfs/data;   
            ngx_fastdfs_module; 

    }

    ......

}

 

3、创建M00目录的软连接

 #mkdir -p /home/iflytek/fastdfs/data/M00

#ln -s /home/iflytek/fastdfs/data  /home/iflytek/fastdfs/data/M00

4、修改mod_fastdfs.conf

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

# vi /etc/fdfs/mod_fastdfs.conf

base_path=/home/iflytek/fastdfs====> 放置log的目录

tracker_server=192.168.11.224:22122 ====> tracker server的ip和端口

group_name=group1 ====> 此台storage server所属的服务器组名

url_have_group_name = true ====> 在URL中包含group名称

store_path0=/home/iflytek/fastdfs ====> 放置文件的目录

5、启动nginx

 #/usr/local/nginx/sbin/nginx

启动nginx 报libpcre.so.1找不到的错误

32位系统 ln -s /usr/local/lib/libpcre.so.1 /lib

64位系统 ln -s /usr/local/lib/libpcre.so.1 /lib64

 

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload

  Killall nginx

 

(七)   配置Client及上传测试

在FastDFS的tracker或者storage节点上都可以承担client的角色。只需要配置一下client即可(本例在tracker节点上配置client),详细配置如下:

1、修改client.conf

 # vi /etc/fdfs/client.conf

base_path=/home/yuqing/fastdfs-> base_path=/home/iflytek/fastdfs

tracker_server=192.168.209.121:22122 -> tracker_server=192.168.11.224:22122  

##include http.conf ->#include http.conf

2、上传文件验证

 #cd /root

 # /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload  install.log

 This is FastDFS client test program v3.11

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General

Public License V3, which may be found in the FastDFS source kit.

Please visit the FastDFS Home Page http://www.csource.org/

for more detail.

[2014-04-14 18:21:26] DEBUG - base_path=/home/iflytek/fastdfs, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0

……..

http://192.168.11.224:8080/group1/M00/00/00/wKgL4FNLtqaikmQxAABw_8UwDjI625_big.log

通过浏览器访问上述标红的文件地址,如果浏览器返回文件的内容则说明部署成功。

 

 

附录:

1、Group中设置多存储路径

在FastDFS的一个Group中可以设置多个存储路径,这样就可以使数据存储到多个存储目录中。设置多路径后至于数据存储到哪个目录中是由FastDFS随机分配的,关于Group中多存储路径的设置详细信息如下所述:

1)   修改storage服务器上的storage.conf

  • 编辑storage.conf

Vi /etc/fdfs/storage.conf

  • 修改存储路径节点数

# path(disk or mount point) count, default value is 1

store_path_count=3  //根据实际情况修改配置的路径数,我这里配置了三个路径,默认是1

  • 添加存储路径

# store_path#, based 0, if store_path0 not exists, it‘s value is base_path

# the paths must be exist

store_path0=/iflytek/fastdfs      //第一个数据存储路径

store_path1=/home/iflytek/fastdfs  //第二个存储路径

store_path2=/opt/iflytek/fastdfs   //第三个存储路径

#store_path1=/home/yuqing/fastdfs2

备注:上面的三个存储路径必须事先提前建立好,否则在重启storage服务时会提示找不到路径。路径的命名规则需遵守store_pathN的方式其中N代表1,2,3.N

2)   在nginx的server配置段中增加location声明

在storage.conf中增加了多个路径后需要在nginx的配置中对该配置进行声明,否则存储的数据将无法下载,这里以增加两个路径为例。

  • 编辑nginx.conf增加如下配置项

Vi /usr/local/nginx/conf/nginx.conf

 

备注:必须在nginx的配置文件中作上述声明,否则上传的文件将无法通过返回的url地址进行下载。在此声明中store_path0对应M00,store_path1对应M01,以此类推。

  • 对新增加目录创建软连接

ln –s /home/iflytek/fastdfs/data  /home/iflytek/fastdfs/data/M01

ln –s /opt/iflytek/fastdfs/data  /opt/iflytek/fastdfs/data/M02

3)   修改storage服务器上的mod_fastdfs.conf文件

  • 修改存储路径节点数

# path(disk or mount point) count, default value is 1

store_path_count=3

  • 添加存储路径

# store_path#, based 0, if store_path0 not exists, it‘s value is base_path

# the paths must be exist

store_path0=/iflytek/fastdfs

store_path1=/home/iflytek/fastdfs

store_path2=/opt/iflytek/fastdfs

备注:在mod_fastdfs.conf中添加文件目录和storage.conf中增加的目录是相同的。

CentOS6.4系统下FastDFS部署,布布扣,bubuko.com

CentOS6.4系统下FastDFS部署

标签:http   使用   os   strong   文件   数据   io   width   

原文地址:http://www.cnblogs.com/cncw/p/3867818.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!