ls0398 发表于 2019-1-31 14:35:47

CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)

背景

  FastDFS是一个开源的轻量级分布式文件系统,为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,解决了大容量存储和负载均衡的问题,特别适合以文件为载体的在线服务,如相册网站、视频网站等等。对于互联网应用,和其他分布式文件系统相比,优势非常明显。
出于简洁考虑,FastDFS没有对文件做分块存储,因此不太适合分布式计算场景。
在此再次感谢淘宝资深架构师余庆大神开源了如此优秀的轻量级分布式文件系统,本篇文章就记录一下FastDFS的最新版本5.11在CentOS7中的安装与配置。


相关链接
  源码地址: https://github.com/happyfish100/
下载地址: http://sourceforge.net/projects/fastdfs/files/
官方论坛: http://bbs.chinaunix.net/forum-240-1.html

环境准备
  操作系统:CentOS7
两台服务器:192.168.53.141、192.168.53.142
安装包:

fastdfs-5.11.tar.gz
libfastcommon-1.0.36.tar.gz
fastdfs-nginx-module-master.zip
nginx-1.14.0.tar.gz
  服务器规划:
tracker服务器:192.168.53.141
storage服务器: 192.168.53.142

安装包获取
  本次安装为目前更新的最新版本,所用到的安装包均来自github上作者最后的releases。
获取FastDFS安装包
目前作者最后一次releases的时间的17年6月3号,对应的最新版本是5.11,直接在余大的GitHub上下载:
https://github.com/happyfish100/fastdfs/releases
http://i2.运维网.com/images/blog/201804/24/928d28b7fa784bf353c9998c8689322b.png
获取libfastcommon安装包
目前作者最后一次releases的时间的17年4月5号,对应的最新版本是1.0.36,直接在余大的GitHub上下载:
https://github.com/happyfish100/libfastcommon/releases
http://i2.运维网.com/images/blog/201804/24/857000b2fb12868c660dd550e5e9c034.png
获取fastdfs-nginx-module安装包
从github上获取最新的代码
https://github.com/happyfish100/fastdfs-nginx-module
http://i2.运维网.com/images/blog/201804/24/c2dbb54dd8fb89e89156f09e3eb53fbe.png
获取nginx安装包
http://nginx.org/en/download.html
http://i2.运维网.com/images/blog/201804/24/8e20e5584892f2e631ff256e782d3509.png
获取完成最新安装包之后,上传到/usr/local/src/目录下。

安装说明
  FastDFS分为tracker(跟踪器)和storage(存储器);
tracker跟踪器主要做调度工作,在访问上起负载均衡的作用。
storage存储器,文件和meta data都保存到存储服务器上。
group组、卷,组外可横向拓展,组内服务器上文件相互备份,是完全相同的。
两台服务器全部需要安装libfastcommon和FastDFS,不同点为tracker和storage配置不同。

安装FastDFS(全部)
  我们准备的两台服务器需要全部安装FastDFS基础环境
安装依赖

#安装依赖
yum -y install gcc-c++ perl
  安装libfastcommon类库
FastDFS 5.x 取消了对 libevent 的依赖,添加了对 libfastcommon 的依赖,安装FastDFS必须安装libfastcommon类库

tar -zxvf libfastcommon-1.0.36.tar.gz
cd libfastcommon-1.0.36
./make.sh
./make.sh install
  执行./make.sh命令进行编译,没有error信息的话就说明编译成功了,最后再执行./make.sh install进行安装,看到类似如下提示信息就说明libfastcommon已安装成功:
http://i2.运维网.com/images/blog/201804/24/0a52cadb19a5605a54d8a41f336fc671.png
创建软连接
因为 FastDFS 主程序设置的 lib 目录是/usr/local/lib, 所以需要创建软链接(FastDFS主程序安装需要依赖此类库,若不创建软连接会安装失败)
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
安装FastDFS

tar -zxvf fastdfs-5.11.tar.gz
cd fastdfs-5.11
./make.sh
./make.sh install
  没有报错信息一般就是安装成功了,安装日志为:http://i2.运维网.com/images/blog/201804/24/bde5fd1a384755e1826aef1cfc81d854.png
相关文件和目录
我们是采用默认安装的方式安装的,安装完成对应的文件和目录如下:


[*]服务脚本:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_tracker
[*]配置文件(配置文件样例):
/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/storage_ids.conf.sample
/etc/fdfs/tracker.conf.sample
[*]命令工具在/usr/bin/目录下:
fdfs_appender_test
fdfs_appender_test1
fdfs_append_file
fdfs_crc32
fdfs_delete_file
fdfs_download_file
fdfs_file_info
fdfs_monitor
fdfs_storaged
fdfs_test
fdfs_test1
fdfs_trackerd
fdfs_upload_appender
fdfs_upload_file
stop.sh
restart.sh
配置FastDFS跟踪器(192.168.53.141)
  复制tracker.conf.sample并重命名为tracker.conf

cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
  编辑配置文件
vi /etc/fdfs/tracker.conf
主要信息及改动情况如下:

disabled=false #默认为false 此处不修改 不启用=false就是启用。设计如此,暂不吐槽。
port=22122 #跟踪器端口号,默认为22122,生产环境可自行修改,这里我暂用默认端口
base_path=/fastdfs/tracker #目录地址 依实际挂载的数据盘自行设置,根目录必须存在,子目录会自动创建
  其他参数保留默认配置即可,详细的配置信息可参考官方的文档说明:
http://bbs.chinaunix.net/thread-1941456-1-1.html
创建基础数据目录(base_path对应的路径)
mkdir -p /fastdfs/tracker
防火墙中打开跟踪器端口(默认为 22122)

firewall-cmd --permanent --zone=public --add-port=22122/tcp
firewall-cmd --reload
  启动tracker
/etc/init.d/fdfs_trackerd start
查看tracker是否启动成功
ps -ef | grep fdfs
http://i2.运维网.com/images/blog/201804/24/6952ce0f253e1d4c1b232fd9ad10ebd2.png
下面的停止和设置开机启动为非必须的操作,我是不想每次重启服务器都手动启动一遍,就加了开机启动!
停止tracker
/etc/init.d/fdfs_trackerd stop
设置开机启动
vi /etc/rc.d/rc.local
添加以下内容:

## FastDFS Tracker
/etc/init.d/fdfs_trackerd start
  由于在centos7中,/etc/rc.d/rc.local文件的权限被降低了,没有执行权限,需要给它添加可执行权限。
chmod +x /etc/rc.d/rc.local

配置FastDFS存储器(192.168.53.142)
  复制storage.conf.sample并重命名为storage.conf

cd /etc/fdfs/
cp storage.conf.sample storage.conf
  编辑配置文件
vi /etc/fdfs/storage.conf
主要信息及改动情况如下:

disabled=false#默认为false 此处不修改 不启用=false就是启用。设计如此,这里也暂不吐槽。
port=23000 #存储器端口号,默认为23000,生产环境可自行修改,这里我暂用默认端口
base_path=/fastdfs/storage#目录地址 依实际挂载的数据盘自行设置,根目录必须存在,子目录会自动创建
store_path0=/fastdfs/storage
#存放文件时storage server支持多个路径,如果不配置base_path0,那边它就和base_path对应的路径一样
tracker_server=192.168.53.141:22122 # tracker_server 的列表 要写端口的哦 (再次提醒是主动连接tracker_server )
http.server_port=8888 # HTTP服务端口 默认为8888 生产环境可自行修改,这里我暂用默认端口
  其他参数保留默认配置即可,详细的配置信息可参考官方的文档说明:
http://bbs.chinaunix.net/thread-1941456-1-1.html
创建基础数据目录(base_path对应的路径)
mkdir -p /fastdfs/storage
防火墙中打开跟踪器端口(默认为 23000)

firewall-cmd --permanent --zone=public --add-port=23000/tcp
firewall-cmd --reload
  启动storaged
/etc/init.d/fdfs_storaged start
(初次启动会在/fastdfs/storage目录下生成data和logs目录)
查看storage是否启动成功
ps -ef | grep fdfs
http://i2.运维网.com/images/blog/201804/24/43a4f225c3db3027b59eff696cee784d.png
下面的停止和设置开机启动为非必须的操作,我是不想每次重启服务器都手动启动一遍,就加了开机启动!
停止storaged
/etc/init.d/fdfs_storaged stop
设置开机启动
vi /etc/rc.d/rc.local
添加以下内容:

## FastDFS Storaged
/etc/init.d/fdfs_storaged start
  由于在centos7中,/etc/rc.d/rc.local文件的权限被降低了,没有执行权限,需要给它添加可执行权限。
chmod +x /etc/rc.d/rc.local

测试文件上传(192.168.53.141)
  修改Tracker服务器中的客户端配置文件

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vi /etc/fdfs/client.conf
  主要信息及改动情况如下:
base_path=/fastdfs/tracker
tracker_server=192.168.53.141:22122
执行上传命名
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/fastdfs-5.11.tar.gz
返回 ID 号: group1/M00/00/00/wKg1jlrfY6-Ad3ssAAUkKwe5sE4.tar.gz
(第一个参数为上传配置文件,第二个参数为 需要上传的文件。能返回以上文件 ID, 说明文件上传成功)

在存储节点上安装nginx
  安装nginx和fastdfs-nginx-modulemok模块
解压文件

cd /usr/local/src/
unzip fastdfs-nginx-module-master.zip
tar -zxvf nginx-1.14.0.tar.gz
  安装编译 Nginx 所需的依赖包
yum -y install pcre* zlib zlib-devel
编译安装 Nginx(添加 fastdfs-nginx-module 模块)

./configure --add-module=/usr/local/src/fastdfs-nginx-module-master/src
make && make install
  复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改

cp /usr/local/src/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
  修改以下配置:

connect_timeout=10 #默认为2 改为10 2秒太少了
base_path=/tmp
tracker_server=192.168.53.141:22122 #tracker跟踪器地址
storage_server_port=23000 #storage存储器的端口
group_name=group1 #组名
url_have_group_name = true #url hava group name 顾名思义 默认为false 改为true
store_path0=/fastdfs/storage #存储器存储地址
  复制FastDFS 的部分配置文件到/etc/fdfs 目录

cd /usr/local/src/fastdfs-5.11/conf/
cp http.conf mime.types /etc/fdfs/
  在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
配置nginx
简要配置样例:

userroot;
worker_processes1;
events {
worker_connections1024;
}
http {
include       mime.types;
default_typeapplication/octet-stream;
sendfile      on;
keepalive_timeout65;
server {
listen 8888;
server_name localhost;
location ~/group()/M00 {
#alias /fastdfs/storage/data;
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
  防火墙打开8888端口

firewall-cmd --permanent --zone=public --add-port=8888/tcp
firewall-cmd --reload
  启动nginx后访问刚刚测试上传的文件地址
http://192.168.53.142:8888/group1/M00/00/00/wKg1jlrfY6-Ad3ssAAUkKwe5sE4.tar.gz
能正常下载文件,此时fdfs单节点的安装和配置完成。




页: [1]
查看完整版本: CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)