您的位置:首页 > 其它

分布式文件系统 FastDFS 5.09 配置

2017-03-09 19:40 381 查看

前言

最近公司打算用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


base_path=/opt/diskvdb/fastdfs #保存日志目录(随便放一个目录都行)

tracker_server=172.16.0.245:22122 #tracker服务器的IP地址以及端口号

storage_server_port=23000 #storage服务器的端口号

url_have_group_name = true #文件 url 中是否有 group 名

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


base_path=/opt/diskvdb/fastdfs/client (日志路径)

tracker_server=172.16.0.245:22122

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:文件名

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

小结

第一次写博客,其实主要目的是想记录一下学习部署的过程,以后再用能有个地方保存这些记录,自己写的再回头过来看还是比较容易记起一些流程。虽然挺花时间,但感觉还是挺好的,起码不会太随意就应付了,下次同事用起来也好提供一份资料。希望日后有空的时候在学习新知识时,能在博客有个记录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  FastDFS搭建