服务器规划
- Tracker server:10.8.8.52,10.8.8.53
- Storage server:10.8.8.50,10.8.8.51
- Storage server服务器40T硬盘挂载路径 /home/hifo
一、所有tracker和storage节点都执行
1、安装所需的依赖包
1
| yum install make cmake gcc gcc-c++
|
2、安装libfastcommon
安装unzip命令
1 2 3
| yum install –y unzip zip unzip libfastcommon-master.zip
|
3、编译安装
1 2 3
| cd libfastcommon-master ./make.sh ./make.sh install
|
4、安装FastDFS
1 2 3 4 5
| cd /usr/local/src tar -xzvf FastDFS_v5.08.tar.gz cd FastDFS ./make.sh ./make.sh install
|
采用默认安装方式,相应的文件与目录检查如下:
服务脚本:
1 2
| /etc/init.d/fdfs_storaged /etc/init.d/fdfs_trackerd
|
配置文件:
1 2 3 4
| ll /etc/fdfs/ -rw-r--r-- 1 root root 1461 1月 4 14:34 client.conf.sample -rw-r--r-- 1 root root 7927 1月 4 14:34 storage.conf.sample -rw-r--r-- 1 root root 7200 1月 4 14:34 tracker.conf.sample
|
命令工具:(/usr/bin目录下)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| ll /usr/bin/fdfs_* -rwxr-xr-x 1 root root 260584 1月 4 14:34 fdfs_appender_test -rwxr-xr-x 1 root root 260281 1月 4 14:34 fdfs_appender_test1 -rwxr-xr-x 1 root root 250625 1月 4 14:34 fdfs_append_file -rwxr-xr-x 1 root root 250045 1月 4 14:34 fdfs_crc32 -rwxr-xr-x 1 root root 250708 1月 4 14:34 fdfs_delete_file -rwxr-xr-x 1 root root 251515 1月 4 14:34 fdfs_download_file -rwxr-xr-x 1 root root 251273 1月 4 14:34 fdfs_file_info -rwxr-xr-x 1 root root 266401 1月 4 14:34 fdfs_monitor -rwxr-xr-x 1 root root 873233 1月 4 14:34 fdfs_storaged -rwxr-xr-x 1 root root 266952 1月 4 14:34 fdfs_test -rwxr-xr-x 1 root root 266153 1月 4 14:34 fdfs_test1 -rwxr-xr-x 1 root root 371336 1月 4 14:34 fdfs_trackerd -rwxr-xr-x 1 root root 251651 1月 4 14:34 fdfs_upload_appender -rwxr-xr-x 1 root root 252781 1月 4 14:34 fdfs_upload_file
|
二、配置tracker服务器
1、复制tracker样例配置文件,并重命名
1
| cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
|
2、修改tracker配置文件
1
| vim /etc/fdfs/tracker.conf
|
修改内容如下:
1 2 3 4
| disabled=false port=22122 base_path=/fastdfs/tracker store_group=g02
|
其他参数保留默认配置
3、创建base_path指定目录
1
| mkdir –p /fastdfs/tracker
|
启动tracker服务器
1
| /etc/init.d/fdfs_trackerd start
|
初次启动会在/fastdfs/tracker目录下生成logs、data两个目录。
检查 FastDFS Tarcker Server是否启动成功:
1
| ps aux|grep fdfs_trackerd
|
三、配置storage服务器
1、复制storage样例配置文件,并重命名
1
| cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
|
2、编辑配置文件
1
| vim /etc/fdfs/storage.conf
|
修改内容:
1 2 3 4 5 6 7
| disabled=false port=23000 base_path=/home/hifo store_path0=/home/hifo tracker_server=10.8.8.52:22122 tracker_server=10.8.8.3:22122 http.server_port=8888
|
其他参数保留默认配置
3、创建基础数据目录
因挂载40T硬盘的时候已创建,所以现在不用创建。
4、启动storage服务器
1
| /etc/init.d/fdfs_storaged start
|
初次启动,会在/home/hifo目录下生成logs、data两个目录。
检查FastDFS Storage Server是否启动成功
1
| ps aux|grep fdfs_storaged
|
四、文件上传测试
1、修改tracker服务器客户端配置文件
1
| cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
|
1
| vim /etc/fdfs/client.conf
|
修改以下配置,其他保持默认
1 2 3
| base_path=/fastdfs/tracker tracker_server=10.8.8.52:22122 tracker_server=10.8.8.53:22122
|
2、执行文件上传命令
/usr/local/src/1.png是需要上传文件路径
1
| /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/1.png
|
返回文件ID号:group1/M00/00/00/CggIM1o6bpKAcmdXAABUIb1c0_k448.png
五、在storage节点安装fastdfs-nginx-module
1、fasgdfs-nginx-module作用说明
FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组存储服务器之间需要进入文件复制,有同步延迟的问题。假设Tracker服务器将文件上传到了IP01,上传成功后文件ID已经返回给客户端。此时FastDFS存储集群机制会将这个文件同步到同组存储IP02,在文件还没有复制完成的情况下,客户端如果用这个文件ID在IP02上取文件,就会出现文件无法访问的错误。而fastdfs-nginx-module可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问的错误。(解压后的fastdfs-nginx-module在nginx安装时使用)
2、解压fastdfs-nginx-module
1 2
| cd /usr/local/src tar -xzvf fastdfs-nginx-module_v1.16.tar.gz
|
3、修改fastdfs-nginx-module的config配置文件
1 2
| cd fastdfs-nginx-module/src vim config
|
将
1
| CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
|
修改为:
1
| CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/
|
4、安装Nginx上传当前的版本Nginx(nginx-1.10.0.tar.gz)到/us/local/src目录
5、安装编译Nginx所需的依赖包
1
| yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
|
6、编译安装Nginx(添加fastdfs-nginx-module模块)
1 2 3 4 5 6 7 8 9
| cd /usr/local/src/ tar -zxvf nginx-1.10.0.tar.gz tar –zxvf ngx_cache_purge_2.3.tar.gz cd nginx-1.10.0 ./configure --prefix=/opt/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src --add-module=/usr/local/src/ngx_cache_purge-2.3 make && make install
|
7、复制fastdfs-nginx-module源码中的配置文件到/etc/fdfs目录,并修改
1 2
| cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ vim /etc/fdfs/mod_fastdfs.conf
|
修改以下配置
1 2 3 4 5
| connect_timeout=10 base_path=/tmp tracker_server=10.8.8.52:22122 tracker_server=10.8.8.53:22122 url_have_group_name=true
|
在最后添加[g02]
1 2 3 4 5
| [g02] group_name=g02 storage_server_port=23000 store_path_count=1 store_path0=/home/hifo
|
8、复制fastdfs的部分配置文件到/etc/fdfs目录
1 2
| cd /usr/local/src/FastDFS/conf cp http.conf mime.types /etc/fdfs/
|
9、在/fastdfs/storage文件存储目录下创建软连接,将其连接到实际存放数据的目录
1 2
| ln -s /home/hifo/data/ /home/hifo/data/M00 ln -s /home/hifo/data/ /opt/nginx/html/g02/M00
|
10、配置nginx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| user nobody; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 4141; server_name 10.8.8.50 location ~/g02/M00 { ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } upstream storage_server_g02{ server 10.8.8.50:8888 weight=10; server 10.8.8.51:8888 weight=10; } }
|
启动nginx
1
| /opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
|
六、验证
通过浏览器方法测试上传的文件