.sh文件是什么语言_FastDFS分布式文件系统的搭建安装

FastDFS

很久之前,对上传的文件可能是存储在数据库,在数据库中存储路径,保存文件的二进制数据,随着用户上传的文件增加,数据库数据越来越多。这时,可以使用分布式文件系统,将用户上传的文件例如图片,pdf,word,excel,视频等存储在文件服务器上。

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

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

FastDFS用C语言实现,支持Linux、FreeBSD、MacOS等类UNIX系统。FastDFS类似google FS,属于应用级文件系统,不是通用的文件系统,只能通过专有API访问,目前提供了C和Java SDK,以及PHP扩展SDK。FastDFS可以看做是基于文件的key value存储系统,key为文件ID,value为文件内容,因此称作分布式文件存储服务更为合适。

FastDFs架构

08e4c8c7-a315-eb11-8da9-e4434bdf6706.png

FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

  Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。

  Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。

  Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。

安装搭建

安装主要步骤

  • 安装前首先安装相关的依赖,yum install make cmake gcc gcc-c++
  • 安装libfastcommon
  • 安装fastDFS
  • 配置跟踪器(tracker)
  • 配置存储器(storage)
  • 环境搭建完成,可以进行测试环境是否搭建成功
  • 跟踪服务器和存储服务器安装nginx
  • 启动和关闭服务顺序,跟踪器,存储器,Nginx

这里安装使用的是CentOS7。

用虚拟软件VirtualBox准备了两台机器,192.168.43.101,192.168.43.111,在两台机器中都先安装相关依赖。yum install make cmake gcc gcc-c++

09e4c8c7-a315-eb11-8da9-e4434bdf6706.png

首先安装libfastcommon,两台服务器都一样的操作。

1.下载libfastcommon安装包,放入/usr/local/software(可自己选择路径)

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

2.解压,新建/usr/local/fastDfs目录,解压至该目录

tar -zxvf V1.0.7.tar.gz  -C  /usr/local/fastDfs

3.编译、安装

cd /usr/local/fastDfs/libfastcommon-1.0.7./make.sh./make.sh install

4.编译安装时,程序会在/usr/lib64创建文件,但是FastDFS主程序目录是/usr/local/lib,所以我们需要创建/usr/lib64/下的一些核心执行程序的软连接文件。

0ae4c8c7-a315-eb11-8da9-e4434bdf6706.png
mkdir  /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 -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.soln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so 

安装FastDFS

1.下载安装包至/usr/local/software

wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

2.解压

tar -zxvf  V5.05.tar.gz -C /usr/local/fastDfs/

3.编译安装

cd /usr/local/fastDfs//usr/local/fastDfs/./make.sh./make.sh install

4.编译安装时,生成了许多的目录。

0ce4c8c7-a315-eb11-8da9-e4434bdf6706.png

5.默认安装方式,安装后的相应文件与目录

1)服务脚本,在/etc/init.d目录下

/etc/init.d/fdfs_storaged/etc/init.d/fdfs_tracker
11e4c8c7-a315-eb11-8da9-e4434bdf6706.png

2)配置文件样例,在/etc/fdfs目录下

/etc/fdfs/client.conf.sample/etc/fdfs/storage.conf.sample/etc/fdfs/tracker.conf.sample

3)命令行工具:/usr/bin/目录下

14e4c8c7-a315-eb11-8da9-e4434bdf6706.png

6.FastDFS 服务脚本设置的bin目录是/usr/local/bin, 但实际命令安装在 /usr/bin/ 下。所有我们要修改下。

两种方式:

  一是修改FastDFS 服务脚本中相应的命令路径,也就是把 /etc/init.d/fdfs_storaged 和 /etc/init.d/fdfs_tracker 两个脚本中的 /usr/local/bin 修改成 /usr/bin。

# vim fdfs_trackerd 使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin       # vim fdfs_storaged 使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin

二是建立 /usr/bin 到 /usr/local/bin 的软链接。  

ln -s /usr/bin/fdfs_trackerd   /usr/local/binln -s /usr/bin/fdfs_storaged   /usr/local/binln -s /usr/bin/stop.sh         /usr/local/binln -s /usr/bin/restart.sh      /usr/local/bin

这里采用第一种方式。对两台机器的服务脚本都进行替换。

17e4c8c7-a315-eb11-8da9-e4434bdf6706.png

配置FastDFS跟踪器(Tracker)

1.在其中一台机器配置Tracker。进入 /etc/fdfs目录,配置跟踪器文件,把tracker.conf.simple文件进行copy一份,去修改tracker.conf文件

cd /etc/fdfs/vim tracker.conf

2.修改配置

1de4c8c7-a315-eb11-8da9-e4434bdf6706.png

创建新的目录,/home/fast/tracker,将base_path修改为自己创建的目录/home/fast/tracker。

其他配置为默认,不作修改。

1ee4c8c7-a315-eb11-8da9-e4434bdf6706.png

可以看出Tracker跟踪器的默认端口为22122。

5.防火墙添加端口

firewall-cmd --zone=public --add-port=22122/tcp --permanentsystemctl reload firewalldsystemctl restart firewalld.service

6.启动Tracker

/etc/init.d/fdfs_trackerd start #启动/etc/init.d/fdfs_trackerd stop #关闭或systemctl start fdfs_trackerd.servicesystemctl stop fdfs_trackerd.service

查看进程:

ps -ef | grep fdfs
1fe4c8c7-a315-eb11-8da9-e4434bdf6706.png

7.启动成功后,进入配置的tracker的目录

cd /home/fast/tracker/ && ll
21e4c8c7-a315-eb11-8da9-e4434bdf6706.png

生成的data和logs分别表示:

 |__data  |   |__storage_groups.dat:存储分组信息  |   |__storage_servers.dat:存储服务器列表  |__logs  |   |__trackerd.log: tracker server 日志文件 

8.设置开机服务自启动

 chkconfig fdfs_trackerd on 或者:vim /etc/rc.d/rc.local 加入配置:/etc/init.d/fdfs_trackerd start

至此Tracker配置完成

配置FastDFS存储器(Storage)

1.在另外一台机器中,同样进入 /etc/fdfs目录,修改存储器配置文件,把storage.conf.simple文件进行copy一份,修改storage.conf文件。

cd /etc/fdfscp storage.conf.sample storage.conf

2.修改配置

vim storage.conf

创建新的目录,/home/fast/storage,将base_path修改为自己创建的目录/home/fast/storage。

24e4c8c7-a315-eb11-8da9-e4434bdf6706.png

修改base_path0路径也为/home/fast/storage。

26e4c8c7-a315-eb11-8da9-e4434bdf6706.png

配置tracker服务器的IP地址,端口号。

28e4c8c7-a315-eb11-8da9-e4434bdf6706.png

3.防火墙配置端口

storage的默认端口为23000

2ce4c8c7-a315-eb11-8da9-e4434bdf6706.png
firewall-cmd --zone=public --add-port=23000/tcp --permanentsystemctl reload firewalldsystemctl restart firewalld.service

4.启动storage

/etc/init.d/fdfs_storaged start #启动/etc/init.d/fdfs_storaged stop #关闭或systemctl start fdfs_storaged.servicesystemctl stop fdfs_storaged.service

查看进程

ps -ef|grep fdfs
31e4c8c7-a315-eb11-8da9-e4434bdf6706.png

5.查看tracker和storage是否在通信

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
34e4c8c7-a315-eb11-8da9-e4434bdf6706.png

6.设置服务开机自启动

 chkconfig fdfs_storaged  on 或者:vim /etc/rc.d/rc.local 加入配置:/etc/init.d/fdfs_storaged  start

测试上传文件

1.可以在配台机器做client端,在这里用tracker服务器来测试上传。到/etc/fdfs/目录。把client.conf.simple文件进行copy一份,去修改client.conf文件。

cp client.conf.sample client.conf

将base_path修改为自己创建的目录/home/fast/client,修改tracker_server信息。

36e4c8c7-a315-eb11-8da9-e4434bdf6706.png

2.到usr/bin目录下

cd /usr/binfdfs_upload_file /etc/fdfs/client.conf /usr/local/software/12.png
37e4c8c7-a315-eb11-8da9-e4434bdf6706.png

上传完成,并返回一串字符串:

group1/M00/00/00/wKgrb15zfgSAJ0RZAAZLsfRo4s0514.png

group1:组名

M00:磁盘

00:目录

wKgrb15zfgSAJ0RZAAZLsfRo4s0514.png:文件名

与Nginx的整合

1.关闭FastDFS的Tracker和Storage。在存储Storage端安装fastdfs-nginx-module,进入/usr/local/software目录,下载fastdfs-nginx-module。

#下载wget https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip#解压unzip 5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip#重命名 mv fastdfs-nginx-module-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1  /usr/local/fastDfs/fastdfs-nginx-module-master

2.安装nginx

安装nignx,进入/usr/local/software目录,下载nginx

wget -c https://nginx.org/download/nginx-1.12.1.tar.gz

安装相关的依赖

# gcc 安装 yum install gcc-c++#PCRE pcre-devel 安装yum install -y pcre pcre-devel#zlib 安装 yum install -y zlib zlib-devel#OpenSSL 安装 yum install -y openssl openssl-devel

解压nginx

tar -zxvf nginx-1.12.1.tar.gz -C /usr/local

今入nginx-1.12.1目录,添加配置

cd nginx-1.12.1/./configure --add-module=/usr/local/fastDfs/fastdfs-nginx-module-master/src

编译,安装

make && make install

3.复制fastdfs-nginx-module-master的配置文件至/etc/fdfs目录下

cp /usr/local/fastDfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

4.修改mod_fastdfs.conf

38e4c8c7-a315-eb11-8da9-e4434bdf6706.png
39e4c8c7-a315-eb11-8da9-e4434bdf6706.png
3ae4c8c7-a315-eb11-8da9-e4434bdf6706.png
3be4c8c7-a315-eb11-8da9-e4434bdf6706.png

5.复制FastDFS里面的两个配置文件至/etc/fdfs目录下

cp /usr/local/fastDfs/fastdfs-5.05/conf/http.conf /etc/fdfscp /usr/local/fastDfs/fastdfs-5.05/conf/mime.types /etc/fdfs

6.创建一个软连接,在/fastdfs/storage文件存储目录下,创建软连接,将其链接到实际存放数据的目录。

ln -s /home/fast/storage/data /home/fast/storage/data/M00

7.修改nginx的配置

/usr/local/nginx/confvim nginx.conf
3ee4c8c7-a315-eb11-8da9-e4434bdf6706.png

8.防火墙添加端口

firewall-cmd --zone=public --add-port=8888/tcp --permanentsystemctl reload firewalldsystemctl restart firewalld.service

启动nginx

cd usr/local/nginx/sbin./nginx
3fe4c8c7-a315-eb11-8da9-e4434bdf6706.png

启动FastDFS的Tracker和Storage。

在浏览器访问之前上传的图片:

http://192.168.43.111:8888/group1/M00/00/00/wKgrb15zfgSAJ0RZAAZLsfRo4s0514.png
41e4c8c7-a315-eb11-8da9-e4434bdf6706.png

至此配置完成了,配置过程还是比较复杂的。后续再讲FastDFS的其他技术知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core MVC 之依赖注入 View

ASP.NET Core 支持在试图中使用依赖注入。这将有助于提供视图专用的服务,比如本地化或者仅用于填充视图元素的数据。应尽量保持控制器和视图之间的关注点分离。视图所显示的大部分数据应该从控制器传入。 使用 inject 指令将服务注入到视图,语法 inject …

matlab全安装多大_不理会其他,我只中意T20天正V2.0软件,激活安装教程在这里...

大家好,我是本文的小编 软妹,前几篇为大家分享了Proe系列软件的安装步骤,在设计三维设计领域Pro/E是现今主流的CAD/CAM/CAE软件一款软件,特别是在国内产品设计领域占据重要位置。在数控加工编程软件领域,哪款软件才是王…

couchbase_Couchbase 2.0归类视图简介

couchbase大多数应用程序必须处理“主/详细”类型的数据: 啤酒厂和啤酒 部门和员工 发票和项目 … 例如,创建如下所示的应用程序视图是必需的: 借助Couchbase和许多面向文档的数据库,您可以使用不同的方式来处理此问题&…

NOIP模拟测试20「周·任·飞」

liu_runda出的题再次$\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%$ 任 题解 题目中为什么反复强调简单路径,没有环 没有环的图中点数-边数联通块数 前缀和维护边的前缀和,和点的前缀和, 在维护边的前缀和不好维护转化为横着边前缀和,竖着边前缀和 注意边的边界问题 看边如何维护 就拿…

如何脚踏实地构建Java Agent

在构建Plumbr的多年中,我们遇到了许多具有挑战性的问题。 在其他方面,使Plumbr Java Agent可靠地执行而又不危害客户的应用程序,是一个特别棘手的任务。 从实时系统中安全地收集所有需要的遥测会带来很多问题。 其中一些非常简单,…

ASP.NET Core MVC 之依赖注入 Controller

ASP.NET Core MVC 控制器应通过构造函数明确地请求它们地依赖关系,在某些情况下,单个控制器地操作可能需要一个服务,在控制器级别上的请求可能没有意义。在这种情况下,也可以将服务作为 Action 的参数。 依赖注入是一种如 Depend…

16g内存 32g内存游戏区别_电脑内存8G和16G的差别大吗?打游戏需要多大内存?

Hello大家好,我是兼容机之家的小牛。电脑内存是除了CPU之外最重要的元件之一,电脑内存的多少直接影响着运行大型软件、多任务时电脑的流畅程度,很多玩家在第一次购买电脑的时候并不知道应该购买内存多大的电脑,今天小牛就来和大家…

用友U9执行JS代码。

UFSoft.UBF.UI.AtlasHelper.RegisterAtlasStartupScript(part.Page, part.Page.GetType(), "JavaScriptExecQueue", "alert(地球即将毁灭,进入倒计时:5,4,3,2,1…嘣!嘣&#xff…

java培训学费_北京Java培训班学费很贵吗,包含了哪些收费项目

北京的Java培训班有很多,价格却是相差不多的,但培训的课程就参差不齐了,有的培训班就是为了赚钱而存在的,想要系统的学习Java,确保学习效果,那么你一定要挑选正规的Java培训班,挑选适合自己的Ja…

typora.io使用教程

引言:对于开发人员大部分都接触过.md文件,而typora.io就是专门编辑.md文件的工具,该工具对于编写接口文档特别方便,它提供了word类似的大纲视图,同时也提供了很多的功能,但是改软件本身却非常的小&#xff…

c#编译时提高兼容性_幻像类型提高了编译时的安全性

c#编译时提高兼容性介绍 使用幻像类型是一种非常简单的技术,可用于提高代码的编译时安全性。 有很多潜在的用例,其复杂性程度各不相同,但是即使幻像类型的轻量级使用也可以显着提高编译时的安全性。 幻像类型只是带有未使用类型参数的参数化类…

如何查看电脑显卡配置_3080显卡电脑配置清单(3700X/10700)

3080显卡昨天就解禁评测了,因为最近的老铁都很期待装3080的机器,我这边做了一些整理,方便各位老铁3080配置有综合的了解。3080显卡售价更加详尽的3080厂家整理可以参考:3080公版哪里买?(所有厂家整理&#…

问题 1074: 数字整除

题目描述定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。 例如,34是17的倍数,因为3-20-17是17的倍数;201不是17的倍数&#xff0c…

GWT HTTP请求替代

由于多种原因 ,许多GWT用户放弃了RPC机制,这是GWT提供的调用后端的标准方法。 他们发现,在GWT RequestBuilder与其他可能不适合其应用程序模型的外部库之间迷失了许多 。 这篇文章的目的是通过GWT中众所周知的HTTP / Rest库,以使情…

极限中0除以常数_基本不等式中常用公式百度作业帮

1. 基本不等式中常用公式基本不等式中常用公式:(1)√((ab)/2)≥(ab)/2≥√ab≥2/(1/a1/b)。(当且仅当ab时,等号成立)(2)√(ab)≤(ab)/2。(当且仅当ab时,等号成立)(3)ab≥2ab。(当且仅当ab时,等号成立)(4)ab≤(ab)/4。(当且仅当ab时…

NOIP模拟测试24「star way to hevaen·lost my music」

star way to heaven 题解 大致尝试了一下并查集,记忆化搜索,最小生成树 最小生成树是正解,跑最小生成树然后找到最大的值 欧几里德距离最小生成树学习 prim楞跑 至于为什么跑最小生成树不是跑最大生成树,你跑最大生成树连的边可能会^%$&$%!# 感性理解手膜吧,我理解但说不清…

NOIP模拟测试25「字符串·乌鸦喝水·所陀门王的宝藏(陀螺王)」

字符串 题解 没看出catalan怎么办 dp打表啊! 考虑大力dp拿到30分好成绩!顺便收获一张表 打表发现$C_{nm}^{m}-C_{nm}^{m-1}$ 仔细观察然后发现其实就是之前的网格那个题 那么我们回顾一下网格那个题 先看最简单的nm情况 求左下角走到右上角方案数,不能经过中间那条线 考虑大力容…

stackexchange_通过Spring Social推特StackExchange –第1部分

stackexchange本文将介绍一个快速的附带项目-一个自动从各种Q&A StackExchange网站上发布热门问题的机器人,例如StackOverflow , ServerFault , SuperUser等。我们将为StackExchange API构建一个简单的客户端,然后进行…

bandizip最后一个无广告版本_【软件来了】这是个无广告的旧版知乎

近两天有新加入粉丝团队的小伙伴在询问G先生旧版App的事情,文章已发过很久,但是知乎的旧版本还是头一次分享给大家,所以G先生就找到了两个版本的旧版知乎,知乎V3.1和知乎V3.9这两个知乎都支持在最高的系统,没有广告也没…