FastDFS集群环境搭建

一、简介

FastDFS的最小集群安装支持两台机,本文档为了更清晰描述安装过程,使用了四台机器进行配置安装。

二、集群环境

Tracker1192.168.7.201 -- 用于调度工作,在访问上起负载均衡的作用。

Tracker1192.168.7.202 -- 用于调度工作,在访问上起负载均衡的作用。

group1_storage1192.168.7.203 – 用于存储实际的文件

group1_storage2192.168.7.204 – 用于存储实际的文件

服务架构图如下:

191810_Rg1U_1858396.png

三、 相关软件包


包名版本号源地址
Zlibzlib-1.2.8http://zlib.net/zlib-1.2.8.tar.gz
pcrepcre-8.36
FastDFSFastDFS_v5.01https://fastdfs.googlecode.com/files/FastDFS_v5.01.tar.gz
fastdfs-nginx-modulefastdfs-nginx-module_v1.16https://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.16.tar.gz
nginxnginx-1.7.7http://nginx.org/download/nginx-1.7.7.tar.gz
ngx_cache_purgengx_cache_purge-2.1

4. 安装步骤
4.1. 安装Tracker(两台服务器的tracker安装配置相同)
1. 安装
1) 将代码包(FastDFS_v5.01)复制到系统的/usr/local/src,使用tar命令解压

[root@tracker opt]# cp FastDFS_v5.01.tar.gz /usr/local/src/

[root@tracker opt]# cd /usr/local/src/

[root@tracker src]# tar -zxvf FastDFS_v5.01.tar.gz

2) 切换到解压目录中,运行make.sh,确认make成功

[root@tracker src]# cd FastDFS

[root@tracker FastDFS]# ./make.sh

3) 运行make.sh install,确认install成功

[root@tracker FastDFS]# ./make.sh install

4) 安装完成后,可执行文件在/usr/local/bin下,以fdfs开头;所有的配置文件在/etc/fdfs下

2. 配置
编辑配置目录下的tracker.conf,设置相关的信息并保存。

[root@tracker FastDFS]# vim /etc/fdfs/tracker.conf

一般只需要改动以下参数:

#启用配置文件,设置为false表示启用

disabled=false

#设置tracker的端口号

port=22122

#设置tracker的数据文件和日志目录(目录需要预先创建)

base_path=/fdfs/tracker

#设置http端口号

http.server_port=8080

3. 运行
1) 运行前,需要打开防火墙中的对应端口
2) 启动tracker,确认启动是否成功,查看端口22122是否开始监听

[root@tracker FastDFS]# /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

[root@tracker FastDFS]# netstat -apn | grep fdfs

4.2. 安装Storage
1. 安装
安装步骤与tracker服务的安装步骤一致
2. 配置
编辑配置文件目录下的storage.conf,设置相关的信息并保存
一般只需要改动以下参数

#启用配置文件

disabled=false

#组名,根据实际情况修改

group_name=group1

#设置storage的端口号

port=23000

#设置storage的数据文件和日志目录(目录需要预先创建)

base_path=/fdfs/storage

#存储路径个数,需要和store_path个数匹配

store_path_count=1

#存储路径

store_path0=/fdfs/storage

#tracker服务器的IP地址和端口号

#集群配置则把tracker服务器的IP地址和端口号逐一列出

tracker_server=192.168.7.201:22122

tracker_server=192.168.7.202:22122

#设置http端口号

http.server_port=8080

注:同一个分组中的storage的端口号必须一致。
3. 运行
1) 运行前,需要打开防火墙中的对应端口
2) 启动storage,确认启动是否成功,查看端口23000是否开始监听

[root@tracker FastDFS]# /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart

[root@tracker FastDFS]# netstat -apn | grep fdfs


3) 确认启动storage后,可以运行fdfs_monitor查看storage服务器是否已登记到tracker服务器

[root@storage1 FastDFS]# /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf

4.3. 安装Storage上对应的Nginx
在storage上安装nginx主要为了提供http的访问服务,同时解决group中storage的同步延迟问题
1. 安装
1) 将代码包和插件(nginx-1.7.7、fastdfs-nginx-module_v1.16、zlib-1.2.8、pcre-8.36)复制/usr/local/src内,然后使用tar命令解压

[root@storage1 src]# tar -zxvf nginx-1.7.7.tar.gz

[root@storage1 src]# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

[root@storage1 src]# tar -zxvf pcre-8.36.tar.gz

[root@storage1 src]# tar -zxvf zlib-1.2.8.tar.gz

2) 切换到nginx解压目录,运行./configure进行安装前的设置

[root@storage1 src]# cd nginx-1.7.7

[root@storage1 nginx-1.7.7]# ./configure –prefix=/usr/local/nginx_storage –add-module=/usr/local/src/fastdfs-nginx-module/src –with-pcre=/usr/local/src/pcre-8.36/ --with-zlib=/usr/local/src/zlib-1.2.8

3) 运行make进行编译,确保编译成功

[root@storage1 nginx-1.7.7]# make

4) 运行make install进行安装

[root@storage1 nginx-1.7.7]# make install

5) 将FastDFS的nginx插件模块的配置文件copy到FastDFS配置文件目录

[root@storage1 nginx-1.7.7]# cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

2. 配置
1) 编辑/usr/local/nginx/conf配置文件目录下的nginx.conf,添加storage存储目录信息
将server段中的listen端口号修改为8080

listen 8080;

在server段中添加:

location ~/group[1-3]/M00 {

    root /fdfs/storage/data;

    ngx_fastdfs_module;

}

2) 编辑/etc/fdfs配置文件目录下的mod_fastdfs.conf,设置storage信息并保存。
一般只需要改动以下几个参数

base_path=/fdfs/storage           #保存日志目录

tracker_server=192.168.7.201:22122 #tracker服务器的IP地址以及端口号

tracker_server=192.168.7.202:22122 #tracker服务器的IP地址以及端口号

storage_server_port=23000         #storage服务器的端口号

group_name=group1                 #当前服务器的group名

url_have_group_name = true        #文件url中是否有group名

store_path_count=1                #存储路径个数,需要和store_path个数匹配

store_path0=/fdfs/storage         #存储路径

http.need_find_content_type=true  #从文件扩展名查找文件类型(nginx时为true)

group_count = 1                   #设置组的个数

#在末尾增加分组的具体信息:

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/fdfs/storage

3) 建立M00至存储目录的符号连接

[root@storage1 nginx-1.7.7]# ln -s /fdfs/storage/data /fdfs/storage/data/M00

3. 运行
先打开防火墙的对应端口
启动nginx,确认是否成功

[root@storage1 nginx-1.7.7]# /usr/local/nginx/sbin/nginx

4.4. 安装Tracker上对应的Nginx
1. 安装
1) 将代码包和插件(nginx-1.7.7)复制/usr/local/src内,然后使用tar命令解压

[root@tracker src]# tar -zxvf nginx-1.7.7.tar.gz

[root@tracker src]# tar -zxvf ngx_cache_purge-2.1.tar.gz

[root@tracker src]# tar -zxvf pcre-8.36.tar.gz

[root@tracker src]# tar -zxvf zlib-1.2.8.tar.gz

2) 切换到nginx目录,运行./configure进行安装前的设置

[root@tracker src]# cd nginx-1.7.7

[root@tracker nginx-1.7.7]# ./configure --prefix=/usr/local/nginx_tracker --add-module=/usr/local/src/ngx_cache_purge-2.1 –with-pcre=/usr/local/src/pcre-8.36 --with-zlib=/usr/local/src/zlib-1.2.8

3) 运行make进行编译,确保成功

[root@tracker nginx-1.7.7]# make

4) 运行make install进行安装

[root@tracker nginx-1.7.7]# make install

2. 配置
编辑/usr/local/nginx/conf配置文件目录下的nginx.conf,设置负载均衡以及缓存。

worker_processes  4;                  #根据CPU核心数而定

events {

    worker_connections  65535;        #最大链接数

    use epoll;                        #新版本的Linux可使用epoll加快处理性能

}

http {

#设置缓存参数

    server_names_hash_bucket_size 128;

    client_header_buffer_size 32k;

    large_client_header_buffers 4 32k;

    client_max_body_size 300m;

    sendfile        on;

    tcp_nopush      on;

    proxy_redirect off;

    proxy_set_header Host $http_host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_connect_timeout 90;

    proxy_send_timeout 90;

    proxy_read_timeout 90;

    proxy_buffer_size 16k;

    proxy_buffers 4 64k;

    proxy_busy_buffers_size 128k;

    proxy_temp_file_write_size 128k;

#设置缓存存储路径(必须在启动前建立)、存储方式、分配内存大小、磁盘最大空间、缓存期限

    proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=http-cache:500m max_size=10g inactive=30d;

    proxy_temp_path /var/cache/nginx/proxy_cache/tmp;

#设置group1的服务器

    upstream fdfs_group1 {

        server 192.168.7.203:8080 weight=1 max_fails=2 fail_timeout=30s;

        server 192.168.7.204:8080 weight=1 max_fails=2 fail_timeout=30s;

    }

   server {

#设置服务器端口

        listen       8080;

#设置group1的负载均衡参数

        location /group1/M00 {

            proxy_next_upstream http_502 http_504 error timeout invalid_header;

            proxy_cache http-cache;

            proxy_cache_valid  200 304 12h;

            proxy_cache_key $uri$is_args$args;

            proxy_pass 
http://fdfs_group1
;

            expires 30d;

        }

#设置清除缓存的访问权限

        location ~ /purge(/.*) {

            allow 127.0.0.1;

            allow 192.168.7.0/24;

            deny all;

            proxy_cache_purge http-cache  $1$is_args$args;

        }


3. 运行
先在防火墙中打开Nginx监听的端口,然后启动nginx,确保启动成功
5. 测试
此处测试是使用fastdfs自带的客户端进行测试
 配置/etc/fdfs/client.conf文件,修改以下参数

#日志存放路径

base_path=/fdfs/tracker

#tracker服务器IP地址和端口号

tracker_server=192.168.7.202:22122

#tracker服务器的http端口号

http.tracker_server_port=8080

 使用/usr/local/bin/fdfs_upload_file上传一个文件,程序会自动返回文件的URL

[root@tracker nginx-1.7.7]# /usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /mnt/monk.jpg

group1/M00/00/00/rBABz1MzKG6Ad_hBAACKLsUDM60560.jpg

然后使用浏览器访问:http://192.168.7.202/group1/M00/00/00/rBABz1MzKG6Ad_hBAACKLsUDM60560.jpg
6. 异常处理
错误信息:connect to 192.168.7.201:22122 fail, errno: 113, error info: No route to host
处理方法:服务间网络络不通造成,检查对应端口是否已经打开

错误信息:tracker_query_storage fail, error no: 2, ...
处理方法:停止所有服务,优先启动tracker服务后,再启动storage服务


转载于:https://my.oschina.net/daoying/blog/362436

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值