分布式文件系统 FastDFS 5.09 配置

前言

最近公司打算用FastDFS作为文件存储服务器,本来在google的代码库下载一份源码,搭建完成后发现,原来在淘宝架构师余庆大神的github上有最近的源码,于是在新的虚拟机上重新搭建一次,以此记录搭建过程。本篇记录一下fastdfs的最新版本v5.09在centos6.3中的安装与配置。
详细介绍请参考:
http://blog.csdn.net/MONKEY_D_MENG/article/details/6038133
http://blog.chinaunix.net/uid-20196318-id-4058561.html

下载

进入网站https://github.com/happyfish100
这里写图片描述
1)首先将这4个文件下载下来,其中fastdfs-client-java是一个SDK,提供API通过代码实现文件的上传、下载、删除等操作。
2)由于上一次我在安装FastDFS_v4.06版本,FastDFS 内部绑定了 libevent 作为 http 服务器,所以需要先下载http://libevent.org/ ,本次下载最新版本libevent-2.1.8-stable .tar.gz。
3)但是FastDFS的HTTP服务较为简单,无法提供负载均衡等高性能的服务,所以基于Nginx负载均衡服务器,并提供了Nginx上使用的FastDFS模块。要用到Nginx所以还要去官网下载http://nginx.org/ 最新的nginx。

需要用到的文件:(pcre-8.40.tar.gz是后面用到,后面会说明)
这里写图片描述

安装FastDFS

1)如果使用v5.00版本以上,可以不用安装libevent,既然上次搭建fastdfs_v4.06时安装过libevent,顺便记录一下。

cd libevent-2.1.8-stable
./configure --prefix=/usr/local/
make
make install

以下部分v5.09必须操作

2)安装libfastcommon
github上有介绍,里面包含了很多依赖fastdfs需要的库,没安装libfastcommon则无法编译fastdfs。

unzip libfastcommon-master.zip
cd libfastcommon-master
./make.sh
./make.sh install

这里写图片描述
增加了一些库到/usr/lib和/usr/lib64目录下

要使/usr/lib生效,可以加入全局变量,也可以用配置文件导入,本文采用配置文件导入。

vim /etc/ld.so.conf

加入两行
这里写图片描述
保存退出,执行以下命令

ldconfig 使配置生效

3)安装FastDFS

tar xvzf fastdfs-5.09.tar.gz
cd fastdfs-5.09
./make.sh
./make.sh install

这里写图片描述
没有看到错误信息表示安装成功,并且会出现 /etc/fdfs/目录,该目录下有基本配置文件。
并且在fastdfs-5.09/conf 下也有配置文件,这目录下的配置文件还更多,修改这路径下的配置也是可以的,但后面引入fastdfs-nginx-module-master插件的时候会默认从/etc/fdfs/ 中加载mod_fastdfs.conf。为了统一好记,只修改/etc/fdfs/下的配置文件,启动tracker和storage时从/etc/fdfs/中加载。

cd /etc/fdfs/
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
cp /fastdfs-5.09/conf/http.conf . 后面要用
cp /fastdfs-5.09/conf/mime.types .
chmod 755 -R .

配置Tracker

在配置Tracker之前,先配置好存放tracker相关的data和log文件夹(路径自行决定,后面会用到)

mkdir -p /opt/diskvdb/fastdfs/tracker

打开tracker的配置文件,vim /etc/fdfs/tracker.conf,一般只需改动以下几个参数即可:
1. disabled=false #启用配置文件
2. port=22122 #设置tracker的端口号
3. base_path=/opt/diskvdb/fastdfs/tracker #设置tracker的数据文件和日志目录(需预先创建)
4. http.server_port=8090 #设置http端口号

最后通过命令启动Tracker服务器:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

停止或重启命令

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

启动后查看,会发现多了data和logs
这里写图片描述

进入logs,查看trackerd.log,没有错误
这里写图片描述

使用命令,查看端口是否被启用

netstat -tupln | grep fdfs

这里写图片描述
此时可以确定 tracker启动成功。

配置Storage

在配置Storage之前,同样先配置好存放Storage相关的data和log文件夹(路径自行决定,后面会用到)

mkdir -p /opt/diskvdb/fastdfs/storage

打开tracker的配置文件,vim /etc/fdfs/storage.conf,一般只需改动以下几个参数即可:
1. disabled=false #启用配置文件(默认启用)
2. group_name=group1 #组名,有多个storage时需要设置不同
3. port=23000 #设置storage的端口号,默认是23000
4. base_path=/opt/diskvdb/fastdfs/storage #存放日志路径
5. store_path0=/opt/diskvdb/fastdfs/storage #上传文件路径
6. tracker_server=172.16.0.245:22122 #tracker服务器地址
7. http.server_port=8888 #设置http端口号

最后通过命令启动Storage服务器:

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

停止或重启命令

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

启动后查看,会发现多了data和logs
这里写图片描述

进入logs,查看storage.log,没有错误,提示成功连接
这里写图片描述

使用命令,查看端口是否被启用

netstat -tupln | grep fdfs

这里写图片描述

确保tracker和storage已经配对并且处于激活状态,可用以下命令查看

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

这里写图片描述

此时可以确定 storage启动成功,可以看到很多关于storage的信息。至此,fasfdfs搭建基本完成,现在就可以进行文件上传和下载测试,但由于没有安装Nginx,浏览器还无法访问到上传的内容,先把nginx搭建完再做测试。

Nginx安装

由于nginx需要依赖三个库,openssl,pcre,zlib。所以先安装这三个库。

rpm -ql zlib 查看是否已经存在这个库,有的话就弹出一些so库路径,没有则没反应。
rpm -qR openssl-devel 查看包的依赖关系

方法一:使用centos 里的联网下载安装命令,直接安装完三个依赖。

yum -y install pcre-devel openssl openssl-devel

方法二:如果联网下载出错或没有网络等情况,可以下载安装包,手动编译安装。
由于我联网安装 pcre库时出错,就采用手动安装的方式,顺便把其他库下载和安装方法一起记录下。
这里写图片描述

1.pcre安装
下载地址http://www.pcre.org/ 不要下成pcre2了。

tar xvzf pcre-8.40.tar.gz
cd pcre-8.40
./configure --prefix=/usr/local
make
make install

2.openssl安装
下载地址http://www.openssl.org/source/

tar xvzf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e
./configure --prefix=/usr/local
make
make install

3.zlib安装
下载地址http://www.zlib.net/

tar xvzf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local
make
make install

这个时候开始正式安装Nginx,但fastdfs还依赖一个nginx的插件,fastdfs-nginx-module-master(第一幅图就标志过这个库也要下载),所以两个同时进行操作。
nginx下载地址http://nginx.org/

unzip fastdfs-nginx-module-master.zip
tar xvzf nginx-1.11.10.tar.gz 
chmod 755 -R fastdfs-nginx-module-master/src 修改文件权限
cd nginx-1.11.10
./configure --prefix=/usr/local/nginx --add-module=/root/install/fastdfs-nginx-module-master/src

如果配置的时候提示找不到库之类的问题,可能/usr/lib或/usr/local/lib的库没加入到全局变量,参考上面修改/etc/ld.so.conf的方法,或自己加入到LD_LIBRARY_PATH的全局变量中。
没有什么问题,执行到最后会看到 如下信息:
这里写图片描述

make
make install

成功则会在/usr/local/ 目录下看到 nginx文件夹,接下来就是要进行nginx配置和刚刚加入的模块fastdfs-nginx-module配置才能让nginx正常工作。

配置mod_fastdfs.conf

这个配置是fastdfs-nginx-module启动时会去默认路径下/etc/fdfs/寻找配置mod_fastdfs.conf。该目录默认并没有配置文件mod_fastdfs.conf,第一步要复制过去。

cp /root/install/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
  1. base_path=/opt/diskvdb/fastdfs #保存日志目录(随便放一个目录都行)
  2. tracker_server=172.16.0.245:22122 #tracker服务器的IP地址以及端口号
  3. storage_server_port=23000 #storage服务器的端口号
  4. url_have_group_name = true #文件 url 中是否有 group 名
  5. store_path0=/opt/diskvdb/fastdfs/storage # 数据的位置(同storage配置)

一定要修改mod_fastdfs.conf的访问权限,给用户和用户组都有读写权限,否则启动Nginx时,发现该模块没有被加载。

chmod 755 /etc/fdfs/mod_fastdfs.conf
chmod 755 -R /etc/fdfs/ 以防万一给全部都加上权限

查看 vim /usr/local/nginx/logs/error.log
这里写图片描述

配置nginx.conf

现在可以修改nginx.conf配置,将端口

vim /usr/local/nginx/conf/nginx.conf

这里写图片描述
按照图中的修改:
1. listen 8090; 监听端口为之前Tracker配置相同
2. 配置中加入 数据的存储位置
location /group1/M00{
root /opt/diskvdb/fastdfs/storage/data;
ngx_fastdfs_module;
}

前面已经复制过http.conf和mime.types到/etc/fdfs目录下,再写一遍。

cp /fastdfs-5.09/conf/http.conf /etc/fdfs/ 
cp /fastdfs-5.09/conf/mime.types /etc/fdfs/ 

然后启动nginx

/usr/local/nginx/sbin/nginx

重启和停止命令

/usr/nginx/sbin/nginx -s reload
/usr/local/nginx/sbin/nginx -s stop

这里写图片描述
上面那个80端口不用管,我多配置了一步,主要是8090端口启动就行。

测试

测试之前,先要修改一个客户端的配置文件

vim /etc/fdfs/client.conf
  1. base_path=/opt/diskvdb/fastdfs/client (日志路径)
  2. tracker_server=172.16.0.245:22122
  3. http.tracker_server_port=8090(Http端口)

用fastdfs提供的测试工具进行测试。

/usr/bin/fdfs_test /etc/fdfs/client.conf upload dota2.jpg

这里写图片描述
从结果看到,会对一个文件上传两次,分别作为主文件和从文件。返回的文件ID也是两个。并且会上传文件附加属性,storage server上会生成4个文件。

通过浏览器访问:
这里写图片描述

group1/M00/00/00/rBAA9VjAx72ALavSAAAjec_Mwwc854.jpg
其中:
1. group1:组名
2. M00:磁盘
3. /00/00:目录
4. rBAA9VjAx72ALavSAAAjec_Mwwc854.jpg:文件名

浏览器能正常打开图片,表示部署成功,还可以测试视频文件等。

小结

第一次写博客,其实主要目的是想记录一下学习部署的过程,以后再用能有个地方保存这些记录,自己写的再回头过来看还是比较容易记起一些流程。虽然挺花时间,但感觉还是挺好的,起码不会太随意就应付了,下次同事用起来也好提供一份资料。希望日后有空的时候在学习新知识时,能在博客有个记录。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值