CentOS 7 安装分布式文件系统fastDFS

分布式文件系统FastDFS介绍

FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载。

Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务器。

Storage server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上,Storageserver 没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。

FastDFS安装

安装gcc环境

以为FastDFS是c语言编写的,所以需要先安装gcc环境

yum install -y gcc gcc-c++

安装libevent依赖库

如果你是安装了图形界面,则不需要安装

yum -y install libevent

安装libfastcommon

libfastcommon是FastDFS官网提供的,里面包含了FastDFS运行所需要的基础库

把下载好的包放在/usr/local目录下

解压libfastcommon

tar -zxvf libfastcommon_v1.01.tar.gz

进入解压目录

cd libfastcommon/

进行编译和安装

./make.sh

./make.sh install

libfastcommon安装好后,会在/usr/lib目录下生成  libfastcommon.so 库文件;

ll /usr/lib64/libfastcommon.so

注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。

要拷贝的文件如下:

cp /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

tracker编译安装

将FastDFS_v5.05.tar.gz拷贝至/usr/local/下

解压

tar -zxvf FastDFS_v5.05.tar.gz

切换到解压目录

cd FastDFS

编译源码和安装

./make.sh

./make.sh install

安装成功将安装目录下的conf下的文件拷贝到/etc/fdfs/下。

cp /usr/local/FastDFS/conf/* /etc/fdfs/

配置

安装成功后进入/etc/fdfs目录:

cd /etc/fdfs/

拷贝一份新的tracker配置文件:

修改tracker.conf

vim tracker.conf

base_path=/home/yuqing/FastDFS  

改为:

base_path=/home/FastDFS

创建/home/FastDFS目录

启动

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

注意:在/home/fastdfs/ 目录下生成两个目录, 一个是数据,一个是日志;

配置storage

前面安装好了fastDFS,所以现在只需要配置storage即可;

切换目录到: /etc/fdfs/ 目录下;

拷贝一份新的storage配置文件

cp storage.conf.sample storage.conf

修改storage.conf文件

base_path=/home/yuqing/fastdfs    改为:  base_path=/home/fastdfs

#store存放文件的位置(store_path)
store_path0=/home/yuqing/fastdfs  改为: store_path0=/home/fdfs_storage 

如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=...
#store_path2=...
#配置tracker服务器:IP
tracker_server=192.168.226.140:22122
#如果有多个则配置多个tracker
#tracker_server=192.168.226.141:22122

#配置http端口
http.server_port=88

创建 /home/fdfs_storage 目录

mkdir /home/fdfs_storage

启动storage, 运行命令如下:

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

使用自带工具测试fastDFS

切换目录到 /etc/fdfs/ 目录下;

拷贝一份新的client配置文件

cp client.conf.sample client.conf

修改client.conf文件

base_path的路径改成和tracker_server一样

放一张图片到虚拟机中,用于以测试

进行测试,运行如下:(运行测试程序,读取/etc/fdfs/client.conf 文件)

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/1.jpg

结果如下,表示搭建成功;

以上图中的文件地址:http://192.168.226.139/group1/M00/00/00/wKjii16tYBOAENgJAACSG3eUT5o243.jpg  对应storage服务器上的/home/fdfs_storage/data/00/00/wKisFFpBG9eAHaQvAAAWKd1hQR4158_big.jpg文件;

由于现在还没有和nginx整合无法使用http下载。

和nginx整合

在tracker上安装 nginx

在服务器上安装一个nginx,如果有多个tracker节点,那么在每个tracker上安装nginx,的主要目的是做负载均衡及实现高可用。如果只有一台tracker服务器可以不配置nginx。

在storage 上安装nginx

上传 fastdfs-nginx-module_v1.16.tar.gz 到Centos服务器上;

解压 fastdfs-nginx-module_v1.16.tar.gz 到 /usr/local目录下;

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

切换目录到: /usr/local/fastdfs-nginx-module/src/ 目录下

cd fastdfs-nginx-module/src/

修改config文件,将文件中的所有 /usr/local/ 路径改为 /usr/

修改之后的

将fastdfs-nginx-module/src下的mod_fastdfs.conf拷贝至/etc/fdfs/下

cp mod_fastdfs.conf /etc/fdfs/

并修改 /etc/fdfs/mod_fastdfs.conf 的内容;vim /etc/fdfs/mod_fastdfs.conf

 base_path=/tmp 修改为 base_path=/home/fastdfs

将libfdfsclient.so拷贝至/usr/lib下

cp /usr/lib64/libfdfsclient.so /usr/lib/

创建nginx/client目录

mkdir -p /var/temp/nginx/client

nginx安装

下载 nginx到Centos服务器上;

wget http://nginx.org/download/nginx-1.17.10.tar.gz

解压 nginx到 /usr/local目录下;

tar -zxvf nginx-1.17.10.tar.gz

安装nginx相关依赖库

yum install gcc-c++ -y yum install -y openssl openssl-devel
yum install pcre -y yum install pcre-devel -y
yum install zlib -y yum install zlib-devel -y

进入nginx解压的目录下:

cd nginx-1.17.10

加入模块命令配置

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/fastdfs-nginx-module/src

注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录;

编译并安装

make&&make install

安装成功后查看生成的目录,如下所示:

拷贝配置文件到 /etc/fdfs 下;

cd /usr/local/FastDFS/conf
cp http.conf mime.types /etc/fdfs/

切换目录到/usr/local/nginx/conf目录,找到下面文件进行修改

mkdir /usr/local/nginx/log

vim nginx.conf

server_name指定本机ip;

/group1/M00/:group1为nginx 服务FastDFS的分组名称,M00是FastDFS自动生成编号,对应store_path0=/home/fdfs_storage,如果FastDFS定义store_path1,这里就是M01

启动nginx

nginx和fastDFS开启自启

虚拟机每次启动之后都要重新启动一下fastdfs 和 nginx服务,比较麻烦,所以增加开机自启动;

编辑 /etc/rc.d/rc.local 文件,增加启动项;

vim /etc/rc.d/rc.local

往文件中添加下面内容

# fastdfs start
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

# nginx start
/usr/local/nginx/sbin/nginx

在centos7中, /etc/rc.d/rc.local 文件的权限被降低了,需要给rc.local 文件增加可执行的权限;

chmod +x /etc/rc.d/rc.local

在浏览器中访问上传到fastDFS的图片

因为Centos系统有防火墙,需要先关闭掉,才可以在浏览器中访问;

systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state

览器中访问刚才上传的图片:

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值