Fastdfs集群安装和配置

1.概况

搭建FastDFS集群环境,以实现高可用的分布式存储。

2.安装步骤

2.1.准备工作

1.机器准备
这里写图片描述
2.下载软件:http://sourceforge.net/projects/fastdfs/files/
http://download.csdn.net/download/chinoukin/9989029
3.安装gcc。命令:yum install make cmake gcc gcc-c++
4.安装nginx依赖包。
命令:yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel

2.2.安装libfastcommon (6台机器)

1.上传libfastcommon-master.zip到/usr/local/software下
2.进行解压libfastcommon-master.zip。
命令:unzip libfastcommon-master.zip -d /usr/local/fast/
3.进入目录:cd /usr/local/fast/libfastcommon-master/
4.进行编译和安装。
命令:./make.sh
命令:./make.sh install

[root@fast1 libfastcommon-master]# ./make.sh install
mkdir -p /usr/lib64
install -m 755 libfastcommon.so /usr/lib64
mkdir -p /usr/include/fastcommon
install -m 644 common_define.h hash.h chain.h logger.h base64.h shared_func.h  
pthread_func.h ini_file_reader.h os_bits.h sockopt.h sched_thread.h http_func.h md5.h
local_ip_func.h avl_tree.h ioevent.h ioevent_loop.h fast_task_queue.h fast_timer.h
 process_ctrl.h fast_mblock.h connection_pool.h /usr/include/fastcommon

注意安装的路径:也就是说,我们的libfastcommon默认安装到了/usr/lib64/这个
位置。
5.进行软件创建。FastDFS主程序设置的目录为/usr/local/lib/,所以我们需要创建
/ usr/lib64/下的一些核心执行程序的软连接文件。
命令:mkdir /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

2.3.安装FastDFS (6台机器)

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/
2.编译安装
命令:cd /usr/local/fast/FastDFS/
编译命令:./make.sh
安装命令:./make.sh install

[root@fast1 FastDFS]# ./make.sh install
mkdir -p /usr/bin
mkdir -p /etc/fdfs
cp -f fdfs_trackerd /usr/bin
if [ ! -f /etc/fdfs/tracker.conf.sample ]; then cp -f ../conf/tracker.conf
/etc/fdfs/tracker.conf.sample; fi
mkdir -p /usr/bin
mkdir -p /etc/fdfs
cp -f fdfs_storaged  /usr/bin
if [ ! -f /etc/fdfs/storage.conf.sample ]; then cp -f ../conf/storage.conf
/etc/fdfs/storage.conf.sample; fi
mkdir -p /usr/bin
mkdir -p /etc/fdfs
mkdir -p /usr/lib64
cp -f fdfs_monitor fdfs_test fdfs_test1 fdfs_crc32 fdfs_upload_file fdfs_download_file
fdfs_delete_file fdfs_file_info fdfs_appender_test fdfs_appender_test1
fdfs_append_file fdfs_upload_appender /usr/bin
if [ 0 -eq 1 ]; then cp -f libfdfsclient.a /usr/lib64; fi
if [ 1 -eq 1 ]; then cp -f libfdfsclient.so /usr/lib64; fi
mkdir -p /usr/include/fastdfs
cp
-f ../common/fdfsdefine.h ../common/fdfs_global.h ../common/mime_file_parser.h ../c
ommon/fdfs_http_shared.h ../tracker/tracker_types.h ../tracker/tracker_proto.h ../tr
acker/fdfs_shared_func.h ../storage/trunk_mgr/trunk_shared.h tracker_client.h
 storage_client.h storage_client1.h client_func.h client_global.h fdfs_client.h
/usr/include/fastdfs
if [ ! -f /etc/fdfs/client.conf.sample ]; then cp -f ../conf/client.conf
/etc/fdfs/client.conf.sample; fi

3.采用默认安装方式脚本文件说明
服务脚本在: /etc/init.d/fdfs_storaged /etc/init.d/fdfs_trackerd
配置文件在: /etc/fdfs/client.conf.sample /etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample
命令行工具在:/usr/bin/
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

2.4.配置跟踪器 (192.168.20.11,192.168.20.12)

1.进入cd /etc/fdfs/目录配置跟踪器文件,把tracker.conf.sample文件进行cope一
份:tracker.conf文件
2.修改tracker.conf
修改为自己的路径地址:base_path=/fastdfs/tracker 注意:对于tracker.conf配置文
件参数解释可以找官方文档,地址为:
http://bbs.chinaunix.net/thread-1941456-1-1.html
3.最后我们一定要创建之前定义好的目录(也就是/fastdfs/tracker):
命令:mkdir -p /fastdfs/tracker
4. 关闭防火墙:(这里以centos6为例)
vim /etc/sysconfig/iptables
添加:-A INPUT -m state –state NEW -m tcp -p tcp –dport 22122 -j ACCEPT
重启:service iptables restart
5.启动跟踪器
目录命令:cd /fastdfs/tracker/ && ll
启动tracker命令:/etc/init.d/fdfs_trackerd start
查看进程命令:ps -el | grep fdfs
停止tracker命令:/etc/init.d/fdfs_trackerd stop
6.设置开机启动跟踪器:
命令:vim /etc/rc.d/rc.local
加入配置:/etc/init.d/fdfs_trackerd start

2.5.配置FastDFS存储

(192.168.20.13,192.168.20.14, 192.168.20.15, 192.168.20.16)
注:下面的操作如果没指明机器,则是4台机器操作一致
1.进入文件目录:cd /etc/fdfs/,进行copy storage文件一份
命令:cd /etc/fdfs/
命令:cp storage.conf.sample storage.conf
2.修改group1(192.168.20.13, 192.168.20.14)的storage.conf文件
命令:vim /etc/fdfs/storage.conf
修改内容
group_name=group1
base_path=/fastdfs/storage
store_path_count=1
store_path0=/fastdfs/storage
tracker_server=192.168.20.11:22122
tracker_server=192.168.20.12:22122
http.server_port=8888
3.修改group2(192.168.20.15, 192.168.20.16)的storage.conf文件
命令:vim /etc/fdfs/storage.conf
修改内容
group_name=group2
base_path=/fastdfs/storage
store_path_count=1
store_path0=/fastdfs/storage
tracker_server=192.168.20.11:22122
tracker_server=192.168.20.12:22122
http.server_port=8888

4.创建存储目录:mkdir -p /fastdfs/storage
5.关闭防火墙:
命令:vim /etc/sysconfig/iptables
添加:-A INPUT -m state –state NEW -m tcp -p tcp –dport 23000 -j ACCEPT
重启:service iptables restart
6.启动存储(storage)
命令:/etc/init.d/fdfs_storaged start
(关闭:/etc/init.d/fdfs_storaged stop) (初次启动成功后会在/fastdbf/storage/
目录下创建 data、logs俩个目录)
7.查看FastDFS storage 是否启动成功
命令:ps -ef | grep fdfs

[root@fast3 storage]# ps -ef | grep fdfs
root       4564      1  0 02:40 ?        00:00:00 /usr/bin/fdfs_trackerd
/etc/fdfs/tracker.conf
root       5092      1  0 02:45 ?        00:00:00 /usr/bin/fdfs_storaged
/etc/fdfs/storage.conf
root       5157   1384  0 02:46 pts/0    00:00:00 grep fdfs

并且我们进入到/fastdfs/storage/data/文件夹下会看到一些目录文件(256*256),
如下: 命令:cd /fastdfs/storage/data/ && ls

[root@fast3 storage]# cd /fastdfs/storage/data/ && ls
00  09  12  1B  24  2D  36  3F  48  51  5A  63  6C  75  7E  87  90  99  A2  AB  B4  BD
C6  CF  D8  E1  EA  F3  FC
01  0A  13  1C  25  2E  37  40  49  52  5B  64  6D  76  7F  88  91  9A  A3  AC  B5  BE
C7  D0  D9  E2  EB  F4  FD
02  0B  14  1D  26  2F  38  41  4A  53  5C  65  6E  77  80  89  92  9B  A4  AD  B6  BF
C8  D1  DA  E3  EC  F5  fdfs_storaged.pid
03  0C  15  1E  27  30  39  42  4B  54  5D  66  6F  78 81  8A  93  9C  A5  AE  B7  C0
C9  D2  DB  E4  ED  F6  FE
04  0D  16  1F  28  31  3A  43  4C  55  5E  67  70  79  82  8B  94  9D  A6  AF  B8  C1
CA  D3  DC  E5  EE  F7  FF
05  0E  17  20  29  32  3B  44  4D  56  5F  68  71  7A  83  8C  95  9E  A7  B0  B9  C2
CB  D4  DD  E6  EF  F8  storage_stat.dat
06  0F  18  21  2A  33  3C  45  4E  57  60  69  72  7B  84  8D  96  9F  A8  B1  BA  C3
CC  D5  DE  E7  F0  F9  sync
07  10  19  22  2B  34  3D  46  4F  58  61  6A  73  7C  85  8E  97  A0  A9  B2  BB  C4
CD  D6  DF  E8  F1  FA
08  11  1A  23  2C  35  3E  47  50  59  62  6B  74  7D  86  8F  98  A1  AA  B3  BC  C5
CE  D7  E0  E9  F2  FB

8.设置开机启动存储器
命令:vim /etc/rc.d/rc.local
加入配置:/etc/init.d/fdfs_storaged start

2.6.Storage&Nginx整合

(192.168.20.13,192.168.20.14, 192.168.20.15, 192.168.20.16)
注:下面的操作如果没指明机器,则是4台机器操作一致
1.确保fastdfs-nginxmodule_v1.16.tar.gz包在/usr/local/software/目录下。
目录命令:cd /usr/local/software/
解压命令:tar -zxvf /usr/local/software/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
2.进入目录:cd fastdfs-nginx-module/src/
3.编辑配置文件config
命令: vim /usr/local/fast/fastdfs-nginx-module/src/config
修改内容:去掉local文件层次

ngx_addon_name=ngx_http_fastdfs_module
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024'
-DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"

修改完毕为

ngx_addon_name=ngx_http_fastdfs_module
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024'
-DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'

4.nginx集成安装
首先把之前的nginx进行删除
目录命令:cd /usr/local/
删除命令:rm -rf nginx
进入到nginx目录命令:cd nginx-1.11.4 /
加入模块命令:
./configure –prefix=/usr/local/nginx –add-module=/usr/local/fast/fastdfs-nginx-module/src/
重新编译命令:make && make install
5.复制fastdfs-nginx-module中的配置文件,到/etc/fdfs目录中
copy命令:cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
6.修改group1(192.168.20.13, 192.168.20.14)的mod_fastdfs.conf 文件
命令:vim /etc/fdfs/mod_fastdfs.conf
修改内容:
base_path= /fastdfs/storage
tracker_server=192.168.20.11:22122
tracker_server=192.168.20.12:22122
group_name= group1
url_have_group_name = true
store_path_count=1
store_path0=/fastdfs/storage
group_count= 2
结尾处增加内容:
[group1]
groupname=group1
storage_server_port=23000
store_path_count=1
store_path0=/fastdfs/storage
[group2]
groupname=group2
storage_server_port=23000
store_path_count=1
store_path0=/fastdfs/storage
7.修改group2(192.168.20.15, 192.168.20.16)的mod_fastdfs.conf 文件
命令:vim /etc/fdfs/mod_fastdfs.conf
修改内容:
base_path= /fastdfs/storage
tracker_server=192.168.20.11:22122
tracker_server=192.168.20.12:22122
group_name= group2
url_have_group_name = true
store_path_count=1
store_path0=/fastdfs/storage
group_count= 2
结尾处增加内容:
[group1]
groupname=group1
storage_server_port=23000
store_path_count=1
storepath0=/fastdfs/storage
[group2]
groupname=group2
storage_server_port=23000
store_path_count=1
store_path0=/fastdfs/storage
8.复制FastDFS里的2个文件,到/etc/fdfs目录中
目录命令:cd /usr/local/fast/FastDFS/conf/
Copy命令:cp http.conf mime.types /etc/fdfs/
9.创建一个软连接,在/fastdfs/storage文件存储目录下创建软连接,将其链接到实
际存放数据的目录。
命令:ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
10.修改Nginx配置文件
命令:vim /usr/local/nginx/conf/nginx.conf
修改内容为:
listen 8888;
servername localhost;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
注意:nginx里的端口要和第五步配置FastDFS存储中的storage.conf文件配置一
致, 也就是(http.server_port=8888)
12. 最后检查防火墙,然后我们启动nginx服务
启动命令:/usr/local/nginx/sbin/nginx

2.7. tracker&Nginx整合(192.168.20.11,192.168.20.12)

注:下面的操作如果没指明机器,则是2台机器操作一致
tracker中nginx安装则只需安装一个nginx的缓存模块
1.确保ngx_cache_purge-2.3.tar.gz包在/usr/local/software/目录下。
目录命令:cd /usr/local/software/
解压命令:tar -zxvf /usr/local/software/ngx_cache_purge-2.3.tar.gz -C /usr/local/fast/
2.nginx集成安装
首先把之前的nginx进行删除
目录命令:cd /usr/local/
删除命令:rm -rf nginx
进入到nginx目录命令:cd nginx-1.11.4 /

加入模块命令:
./configure –prefix=/usr/local/nginx –add-module=/usr/local/fast/ ngx_cache_purge-2.3/
重新编译命令:make && make install
3. 修改Nginx配置文件
命令:vim /usr/local/nginx/conf/nginx.conf
编辑如下

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;

    client_max_body_size 300m;

    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 /fastdfs/cache/nginx/proxy_cache levels=1:2
    keys_zone=http-cache:500m max_size=10g inactive=30d;
    proxy_temp_path /fastdfs/cache/nginx/proxy_cache/tmp;

    upstream fdfs_group1 {
         server 192.168.20.13:8888 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.20.14:8888 weight=1 max_fails=2 fail_timeout=30s;
    }

    upstream fdfs_group2 {
         server 192.168.20.15:8888 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.20.16:8888 weight=1 max_fails=2 fail_timeout=30s;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        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 /group2/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_group2;
            expires 30d;
        }

        location ~/purge(/.*) {
            allow 127.0.0.1;
            allow 192.168.224.0/24;
            deny all;
            proxy_cache_purge http-cache  $1$is_args$args;
        }    

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

5.创建fastdfs的nginx缓存目录
命令:mkdir –p /fastdfs/cache/nginx/proxy_cache
命令:mkdir –p /fastdfs/cache/nginx/proxy_cache/tmp
4.最后检查防火墙,然后我们启动nginx服务
启动命令:/usr/local/nginx/sbin/nginx

2.8.启动停止服务步骤总结

启动命令:
启动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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值