分布式文件系统 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/happyfish1001)首先将这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:文件名
浏览器能正常打开图片,表示部署成功,还可以测试视频文件等。
小结
第一次写博客,其实主要目的是想记录一下学习部署的过程,以后再用能有个地方保存这些记录,自己写的再回头过来看还是比较容易记起一些流程。虽然挺花时间,但感觉还是挺好的,起码不会太随意就应付了,下次同事用起来也好提供一份资料。希望日后有空的时候在学习新知识时,能在博客有个记录。相关文章推荐
- Ubuntu Linux下FastDFS分布式文件系统的安装、配置与初步使用
- 分布式文件系统FastDFS介绍安装配置
- 分布式文件系统 FastDFS 5.0.8 & Linux CentOS 6.7 安装配置
- 一文搞定FastDFS分布式文件系统配置与部署
- 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置
- 分布式文件系统FastDFS介绍安装配置
- 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
- 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署
- 分布式文件系统fastdfs_V5.09配置双tracker负载均衡
- 分布式文件系统FastDFS的配置使用(一)
- 二、分布式文件系统FastDFS-配置
- 分布式文件系统FastDFS安装与配置(单机)
- FastDFS分布式文件系统集群安装与配置
- Linux环境FastDFS分布式文件系统及PHP扩展库的安装与配置
- FastDFS分布式文件系统的安装及配置
- 分布式文件系统FastDFS介绍和配置过程
- FastDFS分布式文件系统集群安装与配置
- FastDFS分布式文件系统集群安装与配置
- Linux下分布式文件系统FastDFS安装与配置
- FastDFS分布式文件系统——5.额外配置