fastdfs 在linux搭建 及使用docker搭建

明智的放弃胜过盲目的执着,
去吹吹风吧,能清醒的话,
感冒也没关系。
——林语堂

FastDFS原理

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
好像Fast’DFS 是淘宝的大佬 余庆写的

FastDFS由跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)构成。

  • Tracker server 追踪服务器
    追踪服务器负责接收客户端的请求,选择合适的组合storage server ,tracker server 与 storage server之间也会用心跳机制来检测对方是否活着。
    Tracker需要管理的信息也都放在内存中,并且里面所有的Tracker都是对等的(每个节点地位相等),很容易扩展
    客户端访问集群的时候会随机分配一个Tracker来和客户端交互。

  • Storage server 储存服务器
    实际存储数据,分成若干个组(group),实际traker就是管理的storage中的组,而组内机器中则存储数据,group可以隔离不同应用的数据,不同的应用的数据放在不同group里面,
    优点:
    海量的存储:主从型分布式存储,存储空间方便拓展,
    fastDFS对文件内容做hash处理,避免出现重复文件
    然后fastDFS结合Nginx集成, 提供网站效率

  • 客户端Client
    主要是上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。每个客户端服务器都需要安装Nginx

工作流程详解

文件上传:Client会先向Tracker询问存储地址,Tracker查询到存储地址后返回给Client,Client拿着地址直接和对应的Storage通讯,将文件上传至改Storage。
在这里插入图片描述

文件下载:同样,Client会向Tracker询问地址,并带上要查询的文件名和组名,Tracker查询后会将地址返回给Client,Client拿着地址和指定Storage通讯并下载文件。
在这里插入图片描述

Linux下的安装部署fastdfs

linux安装fastdfs 比较麻烦 建议直接用docker 这种比较流行的技术
安装fastDFS需要分别安装fastdfs-nginx-module,fastdfs,nginx,libfastcommon
在这里插入图片描述
百度网盘fastdfs所需安装包
提取码:eybb
注:安装过程中的ip地址皆为本机的ip地址

1,安装gcc(编译时需要)

yum install -y gcc gcc-c++

2,安装libevent(运行时需要)

yum -y install libevent

3,安装创建目录上传所有文件

创建目录 并上传安装fastdfs 的压缩包

mkdir -p /fileservice/fast
cd /fileservice/fast

4,安装libfastcommon

进入fast目录:cd /fileservice/fast
解压文件: tar -zxvf libfastcommon-1.0.35.tar.gz
进入libfast文件目录:cd libfastcommon-1.0.35
执行编译:./make.sh
安装:./make.sh install
在这里插入图片描述

5、安装fastdfs

5.2,安装相关依赖库

yum install perl
yum install pcre
yum install pcre-devel
yum install zlib
yum install zlib-devel
yum install openssl
yum install openssl-devel

5.3,安装fastdfs
进入fast目录:cd /fileservice/fast
解压文件:tar -zxvf fastdfs-5.11.tar.gz
进入解压后的目录:cd fastdfs-5.11
执行编译:./make.sh
安装:./make.sh install
在这里插入图片描述
5.5,准备配置文件 默认在/etc/fdfs/下面

cd /etc/fdfs/

在这里插入图片描述
先把配置文件名中的sample去了。[可以复制一份]

cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp storage_ids.conf.sample storage_ids.conf
cp tracker.conf.sample tracker.conf

然后修改tracker的存放数据和日志的目录。

mkdir -p /home/leige/fastdfs/tracker

6、配置和启动tracker

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

cd /etc/fdfs/

6.2,修改tracker.conf

 vim tracker.conf
base_path=/home/yuqing/fastdfs 改为: base_path=/home/leige/fastdfs/tracker

6.3,启动tracker,运行如下命令:

service fdfs_trackerd  start

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

7、配置和启动storage

由于上面已经安装过FastDFS,这里只需要配置storage就好了;
7.1,切换目录到: /etc/fdfs/ 目录下;

cd /etc/fdfs/

7.2,修改storage.conf ;

vim storage.conf
group_name=group1 #配置组名

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

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

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

tracker_server=117.48.203.125:22122

#如果有多个则配置多个tracker
#tracker_server=117.48.203.126:22122

7.3,创建/home/leige/fastdfs/storage 目录

mkdir -p /home/leige/fastdfs/storage

7.4,启动storage, 运行命令如下:

service fdfs_storaged start

启动完成后进入 /home/leige/fastdfs/storage/data 目录下,显示目录如下:
在这里插入图片描述

8、使用FastDFS自带工具测试

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

cd /etc/fdfs/cd 

8.2,修改client.conf ;

vim client.conf

修改基本路径tracker_server如下:

在这里插入图片描述

注意:若tracker有多个,可以配置多个,如下:
  #tracker_server=…
  #tracker_server=…
  8.3,拷贝一张图片baobao.png到Centos服务器上的 /root/目录下;

8.4,进行测试
运行如下(运行测试程序,读取/etc/fdfs/client.conf 文件,上传/root/目录下的baobao.png文件)
在这里插入图片描述

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/baobao.png 

结果如下,表示搭建成功;
在这里插入图片描述

9、FastDFS 和nginx整合

9.1 在tracker上安装 nginx
在每个tracker上安装nginx,的主要目的是做负载均衡及实现高可用。如果只有一台tracker可以不配置nginx。
一个tracker对应多个storage,通过nginx对storage负载均衡;
9.2 在storage 上安装nginx
(1)上传fastdfs-nginx-module-1.20.tar.gz 到Centos服务器上;

(2)解压fastdfs-nginx-module-1.20.tar.gz 并移动到 /usr/local目录下;

tar -zxvf fastdfs-nginx-module-1.20.tar.gz 解压
(3)切换目录到: fastdfs-nginx-module-1.20/src 目录下

cd fastdfs-nginx-module-1.20/src

(4)修改config文件,将文件中的所有 /usr/local/ 路径改为 /usr/
修改之后在这里插入图片描述

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

cp mod_fastdfs.conf /etc/fdfs/

(6)并修改 /etc/fdfs/mod_fastdfs.conf 的内容;

vim /etc/fdfs/mod_fastdfs.conf

修改 tracker_server=117.48.203.125:22122

#tracker_server=192.168.172.20:22122 #(多个tracker配置多行)
url_have_group_name=true #url中包含group名称

store_path0=/home/fdfs_storage #指定文件存储路径(上面配置的store路径)

9.3 进入之前解压的fastdfs目录下,把http.conf、mime.conf移动至/etc/fdfs

cp http.conf mime.types /etc/fdfs/	

10, Nginx的安装

10.1,上传 nginx-1.15.2.tar.gz 到Centos服务器上;

10.2,解压 nginx-1.15.2.tar.gz

cd /fileservice/fast/
tar -zxvf nginx-1.15.2.tar.gz 

10.3,进入nginx解压的目录下

cd nginx-1.15.2/

10.4,加入模块命令配置

./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/fileservice/fast/fastdfs-nginx-module-1.20/src

10.5,编译并安装

make && make install

10.6,修改nginx配置

cd /opt/nginx/conf
vim nginx.conf

10.7,启动nginx

cd /usr/bin/
./nginx   #启动

现在可以测试访问 在浏览器中输入

ip地址/8.4种返回的文件地址
http://117.48.203.125/group1/M00/00/00/wKgAA135BdKAEOs1ADW668UZmDM218.png 

docker 安装fastdfs(建议)

docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=你的ip地址 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs

其中-v H O M E / f a s t d f s : / v a r / l o c a l / f d f s 是 指 : 将 {HOME}/fastdfs:/var/local/fdfs是指:将 HOME/fastdfs:/var/local/fdfs{HOME}/fastdfs这个目录挂载到容器里的/var/local/fdfs这个目录里。所以上传的文件将被持久化到${HOME}/fastdfs/storage/data里,IP 后面是自己的服务器公网ip或者虚拟机ip,-e WEB_PORT=80 指定nginx端口

//进入容器

docker exec -it fastdfs /bin/bash

//创建文件

echo "Hello FastDFS!">index.html

//测试文件上传

fdfs_test /etc/fdfs/client.conf upload index.html

在这里插入图片描述
注意 :关闭防火墙或开放端口
可在浏览器中输入 返回的url 查看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值