Fastdfs集群安装和配置

来源:互联网 发布:阿里云主机管理控制台 编辑:程序博客网 时间:2024/05/25 16:40

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 installmkdir -p /usr/lib64install -m 755 libfastcommon.so /usr/lib64mkdir -p /usr/include/fastcommoninstall -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.hlocal_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 installmkdir -p /usr/binmkdir -p /etc/fdfscp -f fdfs_trackerd /usr/binif [ ! -f /etc/fdfs/tracker.conf.sample ]; then cp -f ../conf/tracker.conf/etc/fdfs/tracker.conf.sample; fimkdir -p /usr/binmkdir -p /etc/fdfscp -f fdfs_storaged  /usr/binif [ ! -f /etc/fdfs/storage.conf.sample ]; then cp -f ../conf/storage.conf/etc/fdfs/storage.conf.sample; fimkdir -p /usr/binmkdir -p /etc/fdfsmkdir -p /usr/lib64cp -f fdfs_monitor fdfs_test fdfs_test1 fdfs_crc32 fdfs_upload_file fdfs_download_filefdfs_delete_file fdfs_file_info fdfs_appender_test fdfs_appender_test1fdfs_append_file fdfs_upload_appender /usr/binif [ 0 -eq 1 ]; then cp -f libfdfsclient.a /usr/lib64; fiif [ 1 -eq 1 ]; then cp -f libfdfsclient.so /usr/lib64; fimkdir -p /usr/include/fastdfscp-f ../common/fdfsdefine.h ../common/fdfs_global.h ../common/mime_file_parser.h ../common/fdfs_http_shared.h ../tracker/tracker_types.h ../tracker/tracker_proto.h ../tracker/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/fastdfsif [ ! -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 fdfsroot       4564      1  0 02:40 ?        00:00:00 /usr/bin/fdfs_trackerd/etc/fdfs/tracker.confroot       5092      1  0 02:45 ?        00:00:00 /usr/bin/fdfs_storaged/etc/fdfs/storage.confroot       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/ && ls00  09  12  1B  24  2D  36  3F  48  51  5A  63  6C  75  7E  87  90  99  A2  AB  B4  BDC6  CF  D8  E1  EA  F3  FC01  0A  13  1C  25  2E  37  40  49  52  5B  64  6D  76  7F  88  91  9A  A3  AC  B5  BEC7  D0  D9  E2  EB  F4  FD02  0B  14  1D  26  2F  38  41  4A  53  5C  65  6E  77  80  89  92  9B  A4  AD  B6  BFC8  D1  DA  E3  EC  F5  fdfs_storaged.pid03  0C  15  1E  27  30  39  42  4B  54  5D  66  6F  78 81  8A  93  9C  A5  AE  B7  C0C9  D2  DB  E4  ED  F6  FE04  0D  16  1F  28  31  3A  43  4C  55  5E  67  70  79  82  8B  94  9D  A6  AF  B8  C1CA  D3  DC  E5  EE  F7  FF05  0E  17  20  29  32  3B  44  4D  56  5F  68  71  7A  83  8C  95  9E  A7  B0  B9  C2CB  D4  DD  E6  EF  F8  storage_stat.dat06  0F  18  21  2A  33  3C  45  4E  57  60  69  72  7B  84  8D  96  9F  A8  B1  BA  C3CC  D5  DE  E7  F0  F9  sync07  10  19  22  2B  34  3D  46  4F  58  61  6A  73  7C  85  8E  97  A0  A9  B2  BB  C4CD  D6  DF  E8  F1  FA08  11  1A  23  2C  35  3E  47  50  59  62  6B  74  7D  86  8F  98  A1  AA  B3  BC  C5CE  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_moduleHTTP_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_moduleHTTP_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

原创粉丝点击