版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/danielzhou888/article/details/80563355
CentOS 7 安装配置分布式文件系统 FastDFS 5.11
前言:
FastDFS是现在比较流行的分布式文件系统,很多互联网公司比较青睐于它,我们公司由之前的ZIMG现在转FastDFS,下面来讲讲简单的安装配置过程。
安装包请自行百度,谢谢。
一、下载1.下载对应的最新版本是5.11,直接在余大的GitHub上下载就可以了: https://github.com/happyfish100/fastdfs/releases
2. 同时FastDFS 5.1.1同以前版本相比将公共的一些函数等单独封装成了libfastcommon包,所以在安装FastDFS之前我们还必须安装libfastcommon,在余大的GitHub首页可以看到:
3. 进入目录:
cd /home/mayanfu/fastdfs/
下载得到两个文件:
fastdfs-5.11.tar.gz
libfastcommon-1.0.36.tar.gz
二、解压安装
1. 安装 libfastcommon
tar -xzvf libfastcommon-1.0.36.tar.gz
cd libfastcommon-1.0.36
执行./make.sh命令进行编译,没有error信息的话就说明编译成功了,
最后再执行./make.sh install进行安装.
libfastcommon.so 默认安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以此处需要重新设置软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so --(ln: 无法创建符号链接"/usr/lib/libfastcommon.so": 文件已存在)
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
2. 安装FastDFS
tar -xzvf fastdfs-5.11.tar.gz
cd fastdfs-5.11
依次执行./make.sh和./make.sh install
安装到了/etc/fdfs中
cd /etc/fdfs
安装成功后就会生成如上的3个.sample文件(示例配置文件),我们再分别拷贝出3个后面用的正式的配置文件:
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
至此FastDFS已经安装完毕,接下来的工作就是依次配置Tracker和Storage了。
3. 安装前置条件
安装需要GCC 和 perl 可能需要提前安装
yum -y install gcc-c++
yum -y install perl
如果没有装解压工具unzip可以通过以下yum命令进行安装后再解压:
yum -y install unzip zip
三、配置 Tracker
1. 在配置Tracker之前,首先需要创建Tracker服务器的文件路径,即用于存储Tracker的数据文件和日志文件等,我这里选择在/home目录下创建一个fastdfs_tracker目录用于存放Tracker服务器的相关文件:
mkdir /home/fastdfs_tracker
2. 编辑上一步准备好的/etc/fdfs目录下的tracker.conf配置文件,打开文件后依次做以下修改:
vi /etc/fdfs/tracker.conf
disabled=false #启用配置文件(默认启用)
port= 22122 #设置tracker的端口号,通常采用22122这个默认端口
base_path=/home/fastdfs_tracker #设置tracker的数据文件和日志目录
http.server_port=6666 #设置http端口号,默认为8080
3. 配置完成后就可以启动Tracker服务器了,但首先依然要为启动脚本创建软引用,因为fdfs_trackerd等命令在/usr/local/bin中并没有,而是在/usr/bin路径下:
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
4. 最后通过命令启动Tracker服务器:
service fdfs_trackerd start
如果启动命令执行成功,那么同时在刚才创建的tracker文件目录/home/fastdfs_tracker中就可以看到启动后新生成的data和logs目录,
tracker服务的端口也应当被正常监听,最后再通过netstat命令查看一下端口监听情况:
netstat -unltp|grep fdfs
可以看到tracker服务运行的22122端口正常被监听:
5. 确认tracker正常启动后可以将tracker设置为开机启动,打开/etc/rc.d/rc.local并在其中加入以下配置:
vi /etc/rc.d/rc.local
service fdfs_trackerd start
查看端口:ss -ntl
四、配置Storage
1.步骤基本与配置Tracker一致,首先是创建Storage服务器的文件目录,需要注意的是同Tracker相比我多建了一个目录,因为Storage还需要一个文件存储路径,用于存放接收的文件:
mkdir /home/fastdfs_storage
mkdir /home/fastdfs_storage_data
2. 接下来修改/etc/fdfs目录下的storage.conf配置文件,打开文件后依次做以下修改:
vi /etc/fdfs/storage.conf
disabled=false #启用配置文件(默认启用)
group_name=group1 #组名,根据实际情况修改
port= 23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/home/fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/home/fastdfs_storage_data #实际文件存储路径
tracker_server=192.168.111.11:22122 #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功(此处的ip是我的CentOS虚拟机ip)
http.server_port=8888 #设置 http 端口号
3. 配置完成后同样要为Storage服务器的启动脚本设置软引用:
ln -s /usr/bin/fdfs_storaged /usr/local/bin
4. 接下来就可以启动Storage服务了:
service fdfs_storaged start
如果启动成功,/home/fastdfs_storage中就可以看到启动后新生成的data和logs目录,端口23000也应被正常监听,还有一点就是文件存储路径下会生成多级存储目录,那么接下来看看是否启动成功了:
netstat -unltp|grep fdfs
查看端口:ss -ntl
有22122端口 和23000端口说明成功了
5. 至此storage服务器就已经配置完成,确定了storage服务器启动成功后,还有一项工作就是看看storage服务器是否已经登记到 tracker服务器(也可以理解为tracker与storage是否整合成功),运行以下命令:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
看到192.168.111.11 ACTIVE 字样即可说明storage服务器已经成功登记到了tracker服务器, 同理别忘了添加开机启动,打开/etc/rc.d/rc.local并将如下配置追加到文件中:
service fdfs_storaged start
五、安装nginx storage服务器的nginx
4.0.5版本开始移除了自带的HTTP支持(因为之前自带的HTTP服务较为简单,无法提供负载均衡等高性能服务),所以余大提供了nginx上使用FastDFS的模块fastdfs-nginx-module,下载地址如下:https://github.com/happyfish100/fastdfs-nginx-module,这样做最大的好处就是提供了HTTP服务并且解决了group中storage服务器的同步延迟问题,
yum -y install pcre-devel pcre zlib zlib-devel openssl openssl-devel
依次装好这些依赖之后就可以开始安装nginx了。
1. 下载fastdfs-nginx-module 得到fastdfs-nginx-module-master.zip
cd /home/mayanfu/fastdfs/
http://nginx.org/en/download.html 下载nginx 稳定版本nginx-1.12.2.tar.gz
2. 解压安装
tar -zxvf nginx-1.12.2.tar.gz
unzip fastdfs-nginx-module-master.zip
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --add-module=/home/mayanfu/fastdfs/fastdfs-nginx-module-master/src
make
make install
安装完成后,我们在我们指定的目录/usr/local/nginx中就可以看到nginx的安装目录了:
3. 接下来要修改一下nginx的配置文件,进入conf目录并打开nginx.conf文件加入以下配置:
cd /usr/local/nginx
vi nginx.conf
listen 9999;
location ~/group1/M00 {
root /home/fastdfs_storage_data/data;
ngx_fastdfs_module;
}
4. 然后进入FastDFS的安装目录/home/mayanfu/fastdfs/fastdfs-5.11目录下的conf目录,将http.conf和mime.types拷贝到/etc/fdfs目录下:
cp -r /home/mayanfu/fastdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/
cp -r /home/mayanfu/fastdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/
接下来还需要把fastdfs-nginx-module安装目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录下:
cp -r /home/mayanfu/fastdfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
5. 编辑刚拷贝的这个mod_fastdfs.conf文件了,打开mod_fastdfs.conf并按顺序依次编译以下内容:
tracker_server=10.100.1.99:22122 #tracker服务器的IP地址以及端口号
storage_server_port=23000 #storage服务器的端口号
url_have_group_name = true #文件 url 中是否有 group 名
group_name=group1
store_path0=/home/fastdfs_storage_data # 存储路径
group_count = 3 #设置组的个数,事实上这次只使用了group1 ----------- 此处改为1,只用group1
// 此处不需要设置,全部去除
设置了group_count = 3,接下来就需要在文件尾部追加这3个group setting:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs_storage_data
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs_storage_data
[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs_storage_data
6. 接下来还需要建立 M00 至存储目录的符号连接:
ln -s /opt/fastdfs_storage_data/data /opt/fastdfs_storage_data/data/M00 (貌似有问题)
// 改为下面
ln -s /home/fastdfs_storage_data/data /home/fastdfs_storage_data/M00
ln -s /usr/local/fastdfs/fastdfs_storage_data/data /usr/local/fastdfs/fastdfs_storage_data/data/M00
linux下面关闭防火墙:
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
7. 最后启动nginx:
/usr/local/nginx/sbin/nginx
通过浏览器也可以看到nginx的主页: http://10.100.1.99:9999/
storage服务器的nginx就已经安装完毕,接下来看一下tracker服务器的nginx安装。
六、 tracker nginx
1. 再装一个nginx,目录命名为nginx2,安装路径依旧放在/usr/local下,由于和之前一样,此处就不再做详细解释:
mkdir /usr/local/nginx2
cd nginx-1.12.2
//源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
./configure --prefix=/usr/local/nginx2 --add-module=/home/mayanfu/fastdfs/fastdfs-nginx-module-master/src
make
make install
2. 接下来依然是修改nginx2的配置文件,进入conf目录并打开nginx.conf文件加入以下配置,storage的nginx修改listen端口,即默认的9980端口,并将upstream指向tracker的nginx地址:
// 此处server为tracker中的nginx地址
upstream fdfs_group1 {
server 127.0.0.1:9999;
}
// 此处监听端口默认9980,不可和其他端口冲突
server {
listen 9980;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
……
}
3. 接下来启动nginx2:
/usr/local/nginx2/sbin/nginx
此时访问nginx2的主页 http://10.100.1.99:9980
七、客户端配置
1.最后一步就是需要修改/etc/fdfs目录下的client.conf文件,打开该文件并加入以下配置:
vi /etc/fdfs/client.conf
base_path=/home/fastdfs_tracker #日志存放路径
tracker_server=10.100.1.99:22122 #tracker 服务器 IP 地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http 端口号,必须和tracker的设置对应起来
2. 至此关于fastdfs就已经全部配置完毕了,再一次进行测试看看是否能正常上传文件并通过http访问文件。
HTTP测试
再给/opt/mayanfu/目录下上传一张 图:
通过客户端命令测试上传:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/mayanfu/0ec49f5ef18747b6a1ffc820ffc14964_th.jpg
返回:group1/M00/00/00/CmQBY1p4ITyAXIvWAABzmXfpT5Y058.jpg
打开浏览器输入ip地址+文件名看看是否能正常访问该图片: http://10.100.1.99:9999/group1/M00/00/00/CmQBY1p4ITyAXIvWAABzmXfpT5Y058.jpg
一切正常~ 至此关于FastDFS在CentOS 7下的部署测试就已经全部完成了。
3. 注意:如果重启linux 系统 reboot 上面很多服务 不能 自动重启:
所以使用脚本让他开机自动重启;
#!/bin/bash
#
service fdfs_trackerd start
service fdfs_storaged start
/usr/local/nginx/sbin/nginx
/usr/local/nginx2/sbin/nginx