目录

1、分布式文件系统概述

2、FastDFS简介

3、FastDFS安装前准备:

3.1、检查Linux上是否安装了gcc、libevent、libevent-devel,执行如下yum命令检查:

3.2、安装libfastcommon库:

4、安装FastDFS

5、FastDFS配置

6、启动FastDFS

7、FastDFS停止与重启

8、FastDFS测试

9、FastDFS的http访问

9.1、FastDFS的Nginx访问扩展模块的下载与安装

9.2、FastDFS的Nginx访问配置

9.3、启动Nginx

9.4、FastDFS的HTTP访问

10、fastdfs的java客户端运用

10.1、java程序

10.2、web程序


1、分布式文件系统概述

分布式文件系统(Distributed File System)是一个可以用来管理文件的软件/软件服务器。但是这个软件所管理的文件通常不在一个服务器节点上,而是在多个服务器节点上,这些服务器节点通过网络相连构成一个庞大的文件存储服务器集群,这些服务器都用于存储文件资源,通过分布式文件系统来管理这些服务器上的文件。

常见的分布式文件系统有:FastDFS、GFS、HDFS(大数据文件系统)、Lustre、Ceph、GridFS、mogileFS、TFS(淘宝文件系统)等。

2、FastDFS简介

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,简单、灵活、高效,由阿里巴巴采用C语言开发并开源。功能包括:文件存储、文件同步(文件备份)、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、文档网站、图片网站、视频网站等等。

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

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

存储节点存储文件,完成文件管理的所有功能:就是这样的存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。

跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。

为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。

在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。

当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。

3、FastDFS安装前准备:

3.1、检查Linux上是否安装了gcc、libevent、libevent-devel,执行如下yum命令检查:

yum list installed | grep gcc

yum list installed | grep libevent

yum list installed | grep libevent-devel

如果没有安装,则需要进行安装,执行命令:yum install gcc libevent libevent-devel -y;

3.2、安装libfastcommon库:

libfastcommon库是FastDFS文件系统运行需要的公共C语言函数库;

3.2.1、下载libfastcommon源代码包,下载地址:https://github.com/happyfish100;

3.2.2、解压下载下来的压缩包:

如果扩展名是tar.gz,使用命令:tar -zxvf libfastcommon-x.x.x.tar.gz

如果扩展名是zip,使用命令:unzip libfastcommon-x.x.x.zip

3.2.3、切换到解压后的libfastcommon目录:

cd libfastcommon-x.x.x

3.2.4、执行make脚本进行编译:./make.sh

注意:make编译的时候如果报错,需要解决错误后再次make,通常发生错误是由于Linux缺少依赖库导致,根据错误提示解决错误。

3.2.5、执行make install进行安装:./make.sh install

4、安装FastDFS

4.1、下载FastDFS安装包,下载地址:https://github.com/happyfish100;

4.2、解压下载下来的tar.gz包:tar -zxvf fastdfs-x.xx.tar.gz

4.3、切换到解压后的目录:cd fastdfs-x.xx

4.4、执行编译:./make.sh

4.5、安装:./make.sh install

FastDFS安装完成之后的所有编译出来的文件存放在/usr/bin/,所有配置文件放在/etc/fdfs目录下,使用ll  /usr/bin/fdfs*查看编译之后的文件。

4.6、把解压之后的fastdfs-x.xx/conf/目录下的http.conf和mime.types拷贝到/etc/fdfs/目录下

cp http.conf /etc/fdfs/

cp mime.types /etc/fdfs/

5、FastDFS配置

FastDFS安装之后所有配置文件放在/etc/fdfs目录下,修改该目录下的配置文件;

把所有的扩展名是.sample的文件后缀都去掉,改为以.conf结尾。比如:mv xxx.conf.sample xxx.conf

5.1、修改tracker.conf文件

base_path=/opt/fastdfs/tracker;并且在/opt/fastdfs/目录下创建tracker目录

5.2、修改storage.conf文件

base_path=/opt/fastdfs/storage;并且在/opt/fastdfs/目录下创建storage目录

store_path0=/opt/fastdfs/storage/files;并且在/opt/fastdfs/storage/目录下创建files目录

tracker_server=192.168.5.128:22122(跟踪器服务器地址以及端口号)

6、启动FastDFS

FastDFS启动需要启动两个脚本;

6.1、启动FastDFS的tracker服务,在任意目录下执行fdfs_trackerd /etc/fdfs/tracker.conf

6.2、启动FastDFS的storage服务,在任意目录下执行fdfs_storaged /etc/fdfs/storage.conf

首次启动storage后,会在配置的路径下创建存储文件的目录;

7、FastDFS停止与重启

7.1、关闭tracker服务,在任意目录下执行fdfs_trackerd /etc/fdfs/tracker.conf (stop|restart)

72.、关闭storage服务,在任意目录下执行fdfs_storaged /etc/fdfs/storage.conf (stop|restart)

注意:start(可省略)/stop/restart

或者使用kill命令关闭fastdfs,但不建议使用kill -9强制关闭,因为可能导致文件信息不同步的问题。

8、FastDFS测试

FastDFS安装完成之后,可以使用fdfs_test脚本测试文件上传。

测试之前,需要修改client.conf配置文件:

base_path=/opt/fastdfs/client;并且在/opt/fastdfs/目录下创建client目录

tracker_server=192.168.5.128:22122(跟踪器服务器地址以及端口号)

测试文件上传,在任意目录下执行命令:fdfs_test /etc/fdfs/client.conf upload /root/aa.txt

测试删除文件,在任意目录下执行命令:fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgFgFv_qYGAYjLoAAAGQ_YTfVU325_big.txt

9、FastDFS的http访问

9.1、FastDFS的Nginx访问扩展模块的下载与安装

9.1.1、下载fastDFS的Nginx扩展模块代码源:fastdfs-nginx-module,下载地址:https://github.com/happyfish100;

9.1.2、解压下载下来的tar.gz包:tar -zxvf fastdfs-nginx-module-1.20.tar.gz

9.1.3、下载nginx,并解压;

9.1.4、切换到nginx目录下,执行 ./configure --prefix=/usr/local/soft/nginx_fdfs --add-module=/usr/local/soft/fastdfs-nginx-module-1.20/src

9.1.5、执行命令进行编译:make

make的时候报错:usr/local/include/fastdfs/fdfs_define.h:15:27: 致命错误:common_define.h:没有那个文件或目录

原因分析:usr/local/include/fastdfs/目录下没有fdfs_define.h文件,读取不到common_define.h文件

解决方案:

方案1、修改配置文件:参考连接:https://blog.csdn.net/zzzgd_666/article/details/81911892;

方案2、找到缺失的文件,然后放到/usr/local/include/fastdfs/目录下:将/usr/include/fastcommon目录和/usr/include/fastdfs这两个目录下的文件拷贝到/usr/local/include/fastdfs/目录下,如果没有对应的目录,则执行mkdir xxx命令创建目录。

方案3、将/usr/include/fastcommon目录下的文件拷贝到/usr/include/fastdfs目录下。

然后重新从步骤9.1.4开始执行(推荐使用方案1,因为可以保持文件原有的目录结构)。

9.1.6、执行命令进行安装:make install

注意事项:

Linux系统中安装Nginx的前提是安装以下几个依赖库:

1、gcc编译器

检测是否安装:yum list installed | grep gcc

执行安装:yum install gcc -y

2、openssl编译器

检测是否安装:yum list installed | grep openssl

执行安装:yum install openssl -y

3、pcre编译器

检测是否安装:yum list installed | grep pcre

执行安装:yum install pcre -y

4、zlib编译器

检测是否安装:yum list installed | grep zlib

执行安装:yum install zlib -y

9.2、FastDFS的Nginx访问配置

9.2.1、将/usr/local/soft/fastdfs-nginx-module-1.20/src目录下的mod_fastdfs.conf文件copy到/etc/fdfs目录下;

9.2.2、修改配置文件mod_fastdfs.conf:

base_path=/opt/fastdfs/nginx_mod,并且在/opt/fastdfs/目录下创建nginx_mod;

tracker_server=192.168.1.189:22122

store_path0=/opt/fastdfs/storage/files,文件存储路径

url_have_group_name = true,表示URL中有group的名字(group1或者group2等)

9.2.3、Nginx的配置文件修改:

拦截请求路径中包含/group[1-9]/M0[0-9]的请求,使用FastDFS的Nginx模块进行转发:

        location ~ /group[1-9]/M0[0-9]{ngx_fastdfs_module;}

至此 ,FastDFS的Nginx访问配置完毕。

9.3、启动Nginx

测试启动执行命令:/usr/local/soft/nginx_fdfs/sbin/nginx -c /usr/local/soft/nginx_fdfs/conf/nginx.conf -t

启动执行命令:/usr/local/soft/nginx_fdfs/sbin/nginx -c /usr/local/soft/nginx_fdfs/conf/nginx.conf

9.4、FastDFS的HTTP访问

复制测试上传文件的时候返回的那个http路径,在浏览器中打开文件,如果访问不到则检查虚拟机的防火墙设置。

10、fastdfs的java客户端运用

10.1、java程序

源码:https://download.csdn.net/download/weixin_39082031/10937737

10.2、web程序

源码:https://download.csdn.net/download/weixin_39082031/10937747

FastDFS安装、启动与文件访问设置相关推荐

  1. Nginx安装启动后无法访问(访问拒绝连接)

    问题 安装解压Nginx后,启动nginx.exe,浏览器访问localhost却访问不到(我们知道Nginx默认端口为80,可以直接localhost访问),访问却显示拒绝访问无法连接. 解决方案 ...

  2. FastDFS构成、特性、Linux下安装以及Java如何访问

    一.FastDFS 基础概念 1.为什么要有分布式文件系统 单机时代 优点:文件访问比较便利,项目直接引用,实现起来简单,无需任何复杂技术,保存文件和访问文件都 很方便. 缺点:一方面,文件和代码耦合 ...

  3. 公用计算机管理,如何管理公用计算机和私人计算机的文件访问

    如何管理公用计算机和私人计算机的文件访问 08/07/2014 本文内容 适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchan ...

  4. 公用计算机配置文件,配置公用和专用计算机文件访问

    配置公用和专用计算机文件访问 05/13/2016 本文内容 适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3 上一次修改主题: 2015 ...

  5. CentOS 6.4 i386 版本安装 FastDFS、使用Nginx作为文件访问WEB服务器

    安装环境: 1. CentOS-6.4-i386 2. FastDFS_v4.06 3. fastdfs-nginx-module_v1.15 4. Nginx-1.5.6(安装见此) 5. libe ...

  6. fastdfs安装_用asp.net core结合fastdfs打造分布式文件存储系统

    今天主要是对开发过程,以及对FastDFS这个通用的分布式文件存储服务的单机及集群安装部署过程做个总结.希望对想要自建分布式文件系统的朋友有所帮助. 什么是FastDFS 这里先简单介绍下分布式文件存 ...

  7. FastDfs安装,根据不同项目存放文件到不同目录

    1.下载和解压fastdfs,libfastcommon,nginx,fastdfs-nginx-module #master机器执行 #安装一些会用到的包 yum -y install zlib z ...

  8. 分布式文件系统研究-fastDFS安装及配置文件说明

    fastDFS安装 如果想自己尝试安装fastDSF也可以按照文档一步一步安装. tracker和storage使用相同的安装包,fastDFS的下载地址在:https://github.com/ha ...

  9. 制作批处理(bat)文件一键安装MongoDB并给其设置账号及权限

    制作批处理.bat文件一键安装MongoDB并给其设置账号及权限 下载MongoDB安装包 创建批处理(bat)文件,安装MongoDB 批处理文件设置MongoDB权限账号 下载MongoDB安装包 ...

最新文章

  1. iOS12系统应用发送邮件中的附件
  2. Spring3的表达式语言
  3. 小说不“好看”,读者就给你“好看”
  4. 图片模糊化处理_10个JavaScript图像处理库,收藏好留备用
  5. 转: ImageMagick 命令行的图片处理工具(客户端与服务器均可用)
  6. springboot 事务嵌套问题_在springboot中写单元测试解决依赖注入和执行后事务回滚问题...
  7. 华为交换机不同网段互访_华为交换机实现不同VLAN之间互访
  8. 你看,Fastjson 漏洞也太多了吧。。
  9. java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
  10. 基于Socket的.NET应用组件
  11. TestStand版本切换注意事项(重启电脑)
  12. linux挂载NTFS格式硬盘
  13. 狂言NBA-阿King从笑话变神话 只因他抛开一切算计
  14. JAVA版本与C#配对的SM2加签验签
  15. js实现简单的购物车 有图有代码
  16. Windows终端美化
  17. [21S01][1136] Column count doesn‘t match value count at row 1 报错分析
  18. html css修改span的字体的值,一、编辑网页文本(span标签与字体属性、文本属性)...
  19. Docker(3)具体的安装部署过程和一些简单应用(2048小游戏,nginx,ubuntu)
  20. 北航计算机在职研究生多少钱,在职攻读北航研究生需要多少学费?

热门文章

  1. 敖夜肝了这份Scrapyd核心源码剖析及爬虫项目实战部署
  2. css中的伪元素、基线对齐、盒子模型
  3. pyTorch入门(四)——导出Minist模型,C++ OpenCV DNN进行识别
  4. 耿建超英语语法---非谓语动词作宾语与表语
  5. 深度学习_深度学习基础知识_PReLU
  6. mysql 定时备份
  7. vue 中监听监听按键
  8. MATLAB基础知识——范数求解函数norm
  9. 《数据挖掘》第一章作业答案
  10. Java多线程创建方式初探