FastDFS对象存储初步搭建-仅限参考

FastDFS是什么?

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS角色有哪些?需要注意什么?

FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
注:这里启动服务需要nginx做均衡

  1. 存储节点:存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。
  2. FastDFS 同步:tracker server会在内存中保存storage分组及各个组下的storage server,并将连接过自己的storage server及其分组保存到文件中,以便下次重启服务时能直接从本地磁盘中获得storage相关信息。storage server会在内存中记录本组的所有服务器,并将服务器信息记录到文件中。

交互过程

上传文件交互过程

  1. client询问tracker上传到的storage,不需要附加参数;
  2. tracker返回一台可用的storage;
  3. client直接和storage通讯完成文件上传。
    返回存储信息
    group0/M00/00/02/Cs8b8lFJIIyAH841AAAbpQt7xVI4715674
    参数解释:
    组名:group0 磁盘: M00 目录:00/02 文件名:Cs8b8lFJIIyAH841AAAbpQt7xVI4715674

下载文件交互过程

  1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
  2. tracker返回一台可用的storage;
  3. client直接和storage通讯完成文件下载。

环境搭建以及配置

安装libfastcommon

libfastcommon是FastDFS操作的基础库

下载

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

解压

tar -zxvf V1.0.7.tar.gz

安装

cd libfastcommon-1.0.7/
./make.sh
./make.sh install

即可

安装FastFDS

官网: https://github.com/happyfish100/fastdfs
下载zip或直接git clone
解压完成后安装

cd fastdfs
./make.sh
./make.sh install

并在某个地方生成一个文件夹用作存放数据和日志的
我自己配的是在fastdfs下的一个logs文件夹
如下图:
在这里插入图片描述

Tracker服务配置

先执行

cd  /etc/fdfs

查看有没有tracker.conf如果只有一个tracker.conf.sample
就执行

cp tracker.conf.sample tracker.conf

开始配置

sudo vim tracker.conf

找到

base_path=/opt/fastdfs/logs 
http.server_port = 8454 #最好不要是8080

注:改为你刚刚创建的数据存储的文件夹这里是我的logs文件夹

测试

cd /usr/bin
./fdfs_trackerd /etc/fdfs/tracker.conf start

netstat -lnpt|grep fdfs

在这里插入图片描述

这样就能看到服务启动

配置 Storage 服务

cd /etc/fdfs/ 

查看是否有storage.conf.sample,如果没有:

cp storage.conf.sample storage.conf 

开始配置

sudo vim storage.conf

找到

store_path0=/home/saltfish/fastdfs
base_path=/home/saltfish/fastdfs #更改一下同上
#存储节点数目前单机就是一个
store_path_count=1
tracker_server=xx.xx.xx.xx:22122 

上面填一个自己主机的ip如下图:
在这里插入图片描述

测试

cd /usr/bin
./fdfs_storaged /etc/fdfs/storage.conf start

查看监控

./fdfs_monitor /etc/fdfs/storage.conf

在这里插入图片描述
测试是否可以手动上传

cd /etc/fdfs/

查看客户端

vim client.conf

配置这两项
在这里插入图片描述
然后测试是否可以上传

 ./fdfs_upload_file /etc/fdfs/client.conf 图片路径 ip:23000 group1/M01/00/00/xx
group1/M00/00/00/wKgBZmL7ncaAQCx9AAb53j0cLbc594.png

在这里插入图片描述

查看一下你存放文件的文件夹
在这里插入图片描述

配置NGINX

下载命令

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

解压 nginx

tar -zxvf nginx-1.15.0.tar.gz

编译安装

./configure
make
make install

启动

cd /usr/local/nginx/sbin
nginx -c nginx路径/conf/nginx.conf

下载fastdfs-nginx-module

wget https://nchc.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz

解压

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

执行配置命令

./configure --prefix=/usr/local/nginx  --add-module=/opt/fastdfs-nginx-module_v1.16/fastdfs-nginx-module/src

查看nginx 的Makefile文件:
发现执行的是objs/Makefile,再找到此文件
在这里插入图片描述
再(nginx下)
make一下
将nginx配置更新到/usr/local

cp objs/nginx /usr/local/nginx/sbin/nginx

启动nginx

查看模块是否被加载上
在这里插入图片描述

配置fastdfs-nginx-module 模块
拷贝mod-fastdfs.conf到/etc/fdfs文件目录下,配置mod-fastdfs.conf

cp mod_fastdfs.conf /etc/fdfs/
sudo vim /etc/fdfs/mod_fastdfs.conf

修改

tracker_server=xx.xx.xx.xx:22122 #修改成tracker服务器的ip

url_have_group_name = true

store_path0=/home/saltfish/fastdfs#按照上面的一样

cd 到 fastdfs的conf/目录下

 cp anti-steal.jpg http.conf mime.types /etc/fdfs/

然后

cd /etc/fdfs/

查看是否有这些
在这里插入图片描述
配置nginx

cd /usr/local/nginx/conf

在这里插入图片描述

重启nginx

./nginx -s reload

在浏览器中如下图输入网址
在这里插入图片描述

这样就算是基础搭建完成
后面有我写的简单脚本即可变成一条命令直接启动整套服务

只需要将配置项目

在这里插入图片描述

这里配置的只是根目录

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值