Fast DFS 单机版安装-搭建

 
Fast DFS 单机版安装-搭建
 
    在前面我们分析了Fast DFS的原理、架构、特性、优缺点等,知道了Fast DFS是由客户端,跟踪服务器和存储服务器三部分组成,下面我们就来看一下如何动手搭建一个Fast DFS的环境出来。这是Fast DFS的主页: https://code.google.com/p/fastdfs/ ,上边有Fast DFS的简单介绍和一些常用的下载。但是本人觉得,官网上的搭建过程过于简单,并且没有对一个异常提出解决方案,对于一个初学者来说是很难搭建出一个满意的环境的,毕竟对Fast DFS有较高的造诣的人也不会纠结怎么搭建环境,所以这里我总结了一下我的搭建过程和其中遇到的一些问题,希望对大家有所帮助,如果有什么问题还请大家积极指出。 由于Fast DFS集群搭建非常复杂,对于初期学习Fast DFS来说,搭建个单机版的作为入门更为实际一些。
 
链接:http://pan.baidu.com/s/1eSvlnBs  密码:q090
1、环境声明
Windows10系统,安装 Virtual Box,并安装虚拟机Centos6.5,操作root账号下;
 
2、环境准备
下载Fast DFS相关的安装包; 下载链接:http://pan.baidu.com/s/1eSvlnBs  密码:q090,将文件下载到/usr/local/src/
3、搭建fastdfs
3.1、编译和安装所需的依赖包
# yum install make cmake gcc gcc-c++
 
3.2、 安装libfastcommon,不再依赖libevent
# cd /usr/local/src/
# tar –zxvf libfastcommon-1.0.7.tar.gz
# cd libfastcommon-1.0.7
# ./make.sh
# ./make.sh install
注:libfastcommon 默认安装到了
 /usr/lib64/libfastcommon.so
 /usr/lib64/libfdfsclient.so
   
3.3、 安装Fast DFS
# cd /usr/local/src/
# tar –zxvf fastdfs-5.05.tar.gz
# cd fastdfs-5.05
# ./make.sh
# ./make.sh install
注:采用默认安装方式,相应的文件与目录如下
1> 服务脚本:
# /etc/init.d/fdfs_storaged
# /etc/init.d/fdfs_trackerd
2> 配置文件(示例配置文件):
# 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
3> 命令行工具(/usr/bin目录下)
# -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
 
3.3.1因为 FastDFS 服务脚本设置的 bin 目录是/usr/local/bin,但实际命令安装在/usr/bin,可以进入/user/bin 目录使用以下命令查看 fdfs 的相关命令:
  因此需要修改 FastDFS 服务脚本中相应的命令路径,也就是把/etc/init.d/fdfs_storaged和/etc/init.d/fdfs_tracker 两个脚本中的/usr/local/bin 修改成/usr/bin:
 # vi /etc/init.d/fdfs_trackerd
 使用查找替换命令进统一修改::%s+/usr/local/bin+/usr/bin
 # vi /etc/init.d/fdfs_storaged
 使用查找替换命令进统一修改::%s+/usr/local/bin+/usr/bi
 
3.4、配置Tracker
3.4.1复制 Fast DFS 跟踪器样例配置文件,并重命名
# cd /etc/fdfs/
# cp tracker.conf.sample tracker.conf
 
3.4.2 编辑跟踪器配置文件  
# vi /etc/fdfs/tracker.conf
修改的内容如下:
disabled=false #启用配置文件
port=22122  #tracker 的端口号,一般采用 22122 这个默认端口
base_path=/fastdfs/tracker  #tracker 的数据文件和日志目录
 
# the method of selecting group to upload files
# 0: round robin
# 1: specify group
# 2: load balance, select the max free space group to upload file
  store_lookup=0(采取轮巡方式选择要上传的组进行存储,默认2 选择最大空闲空间的组)(其它参数保留默认配置,附跟踪器配置文件 /conf/tracker.conf
 
3.4.3创建基础数据目录(参考基础目录 base_path 配置)
# mkdir -p /fastdfs/tracker
3.4.4防火墙中打开跟踪器端口(默认为 22122)
# vi /etc/sysconfig/iptables
添加如下端口行:
## FastDFS Tracker Port
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
重启防火墙:
# service iptables restart
3.4.5启动 Tracker
# /etc/init.d/fdfs_trackerd start  或者 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
(初次成功启动,会在/fastdfs/tracker 目录下创建 data、logs 两个目录)可以通过以下两个方法查看 tracker 是否启动成功:
3.4.5.1查看 22122 端口监听情况
# netstat -unltp|grep fdfs
3.4.5.1 通过以下命令查看 tracker 的启动日志,看是否有错误
# tail -100f /fastdfs/tracker/logs/trackerd.log
3.4.6关闭 Tracker
# /etc/init.d/fdfs_trackerd stop 或者  /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
3.4.7设置 FastDFS 跟踪器开机启动
# vi /etc/rc.d/rc.local
添加以下内容:
## FastDFS Tracker
#/etc/init.d/fdfs_trackerd start
 
3.5、配置Storage
3.5.1复制 Fast DFS 存储器样例配置文件,并重命名
# cd /etc/fdfs/
# cp storage.conf.sample storage.conf
3.5.2 编辑存储器配置文件  
# vi /etc/fdfs/storage.conf
修改的内容如下:
disabled=false #启用配置文件
group_name=group1     #组名(第一组为 group1,第二组为 group2)port=23000    #storage 的端口号,同一个组的 storage 端口号必须相同
base_path=/fastdfs/storage       #设置 storage 的日志目录
store_path0=/fastdfs/storage            #存储路径
store_path_count=1     #存储路径个数,需要和 store_path 个数匹配
tracker_server=192.168.1.170:22122          #tracker 服务器的 IP 地址和端口
http.server_port=8888     #设置 http 端口号
(其它参数保留默认配置,附存储节点配置文件 /conf/storage.conf
 
3.5.3创建基础数据目录(参考基础目录 base_path 配置)
# mkdir -p /fastdfs/tracker
3.4.4防火墙中打开跟踪器端口(默认为 22122)
# vi /etc/sysconfig/iptables
添加如下端口行:
## FastDFS Tracker Port
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
重启防火墙:
# service iptables restart
 
3.5.4防火墙中打开存储器端口(端口号23000)
# vi /etc/sysconfig/iptables
添加如下端口行:
## FastDFS Tracker Port
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2300 -j ACCEPT
重启防火墙:
# service iptables restart
3.5.5启动Storage
# /etc/init.d/fdfs_trackerd start  或者 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
(初次成功启动,会在/fastdfs/storage 目录下创建数据目录 data 和日志目录 logs)各节点启动动,使用 tail –f /fastdfs/storage/logs/storaged.log 命令监听存储节点日志,可以看到存储节点链接到跟踪器,并提示哪一个为 leader 跟踪器。同时也会看到同一组中的其他节点加入进来的日志信息。
3.5.5.1查看 23000 端口监听情况
# netstat -unltp|grep fdfs
3.5.5.2 所有 Storage 节点都启动之后,可以在任一 Storage 节点上使用如下命令查看集群信息:
# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
3.5.6关闭 Storage
# /etc/init.d/fdfs_storaged stop 或者  /usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
3.5.7设置 FastDFS 存储器开机启动
# vi /etc/rc.d/rc.local
添加以下内容:
## FastDFS Storage
#/etc/init.d/fdfs_storaged start
3.6、测试单节点上传
3.6.1修改 Tracker 服务器中的客户端配置文件
# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
# vi /etc/fdfs/client.conf
base_path=/fastdfs/tracker
tracker_server=192.168.1.170:22122
3.6.2 Xftp5上传test.png到192.168.1.170目录/usr/local/src/,用作上传测试
Fists上传命令如下:
# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/test.png
group1/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png
能返回文件ID号,说明上传成功。
注:在group1下的节点上找到刚上传的文件;
# ll   /fastdfs/storage/data/00/00/
4、搭建fastdfs-nginx
4.1、背景介绍
    在大多数业务场景中,往往需要为FastDFS存储的文件提供http下载服务,而尽管FastDFS在其storage及tracker都内置了http服务, 但性能表现却不尽如人意;于是基于当前主流web服务器的扩展模块(包括nginx/apache),其用意在于利用web服务器直接对本机storage数据文件提供http服务,以提高文件下载的性能
 
4.2、安装介绍
关于FastDFS的架构原理不再赘述,有兴趣可以参考: http://code.google.com/p/fastdfs/wiki/Overview  
4.2.1 参考架构
使用FastDFS整合Nginx的参考架构如下所示
说明: 在每一台storage服务器主机上部署Nginx及FastDFS扩展模块,由Nginx模块对storage存储的文件提供http下载服务, 仅当当前storage节点找不到文件时会向 源storage 主机发起redirect或proxy动作。 
注:图中的tracker可能为多个tracker组成的集群;且当前FastDFS的Nginx扩展模块支持单机多个group的情况
 
4.2.2在单节点storage上安装nginx
4.2.2.1 fastdfs-nginx-module 作用说明
    FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储,但是同组存储服务器之间需要进入文件复制,有同步延迟的问题。假设 Tracker 服务器将文件上传到了 192.168.1.135,上传成功后文件 ID已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.1.136,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.1.136 上取文件,就会出现文件无法访问的错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。(解压后的 fastdfs-nginx-module 在 nginx 安装时使用)
4.2.2.2上传 fastdfs-nginx-module_v1.16.tar.gz 到/usr/local/src,解压
# cd /usr/local/src/
# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
4.2.2.3修改 fastdfs-nginx-module 的 config 配置文件
# vi /usr/local/src/fastdfs-nginx-module/src/config
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"

猜你喜欢

转载自blog.csdn.net/u013698311/article/details/80771863