一.FastDFS介绍

FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。

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

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

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

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

存储节点Storage采用了分卷[Volume](或分组[group])的组织方式,存储系统由一个或多个组组成,组与组之间的文件是相互独立的,所有组的文件容量累加就是整个存储系统中的文件容量。

一个卷[Volume](组[group])可以由一台或多台存储服务器组成,一个组中的存储服务器中的文件都是相同的,组中的多台存储服务器起到了冗余备份和负载均衡的作用,数据互为备份,存储空间以group内容量最小的storage为准,所以建议group内的多个storage尽量配置相同,以免造成存储空间的浪费。

二.操作环境

操作系统:Centos 6.5

IP:192.168.200.101

三.下载安装FastDFS

1.安装相关依赖包

[root@zha ~]# yum -y install unzip zip  gcc-c++

2.下载安装libfastcommon(公共C函数库)

[root@zha ~]# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

[root@zha ~]# mkdir /softpackages

[root@zha ~]# tar xf V1.0.7 -C /softpackages/

[root@zha ~]# cd /softpackages/libfastcommon-1.0./

[root@zha libfastcommon-1.0.]# ./make.sh && ./make.sh install

libfastcommon.so 安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以需要创建软链接。

[root@zha libfastcommon-1.0.]# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

[root@zha libfastcommon-1.0.]# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

[root@zha libfastcommon-1.0.]# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

[root@zha libfastcommon-1.0.]# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

3.下载安装FastDFS

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

[root@zha libfastcommon-1.0.]# cd /softpackages/

[root@zha softpackages]# wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

[root@zha softpackages]# ls

libfastcommon-1.0.  V5.

[root@zha softpackages]# tar xf V5.

[root@zha softpackages]# cd fastdfs-5.05/

[root@zha fastdfs-5.05]# ./make.sh && ./make.sh install

默认安装方式安装后的相应文件与目录:

服务脚本:/etc/init.d/fdfs_storaged

/etc/init.d/fdfs_tracker

配置文件:

/etc/fdfs/client.conf.sample

/etc/fdfs/storage.conf.sample

/etc/fdfs/tracker.conf.sample

4. 配置FastDFS跟踪器(Tracker)

[root@zha fastdfs-5.05]# cd /etc/fdfs/

[root@zha fdfs]# cp tracker.conf.sample tracker.conf

修改tracker.conf配置文件

[root@zha fdfs]# vim tracker.conf

Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建)

创建tracker基础数据目录,即base_path对应的目录(用于存储tracker的数据文件和日志文件等)

[root@zha fdfs]# mkdir -p /home/chenjiaxin/fastdfs

为启动脚本创建软引用,因为fdfs_trackerd等命令在/usr/local/bin中并没有,而是在/usr/bin路径下

[root@zha fdfs]# ln -s /usr/bin/fdfs_trackerd  /usr/local/bin

[root@zha fdfs]# ln -s /usr/bin/stop.sh  /usr/local/bin

[root@zha fdfs]# ln -s /usr/bin/restart.sh  /usr/local/bin

启动服务

[root@zha fdfs]# /etc/init.d/fdfs_trackerd start

Starting FastDFS tracker server:

查看端口

[root@zha fdfs]# netstat -antp|grep fdfs

tcp               0.0.0.0:               0.0.0.0:*                   LISTEN      /fdfs_trackerd

设置开机启动

[root@zha fdfs]# chkconfig fdfs_trackerd on

 

5. 配置 FastDFS 存储 (Storage)

创建Storage服务器的文件目录,注意同Tracker相比要多建一个目录,因为Storage还需要一个文件存储路径,用于存放接收的文件:

[root@zha fdfs]# mkdir /opt/fastdfs_storage

[root@zha fdfs]# mkdir /opt/fastdfs_storage_data

[root@zha fdfs]# cp storage.conf.sample storage.conf

修改storage.conf配置文件:

[root@zha fdfs]# vim storage.conf

#设置storage数据文件和日志目录
base_path=/opt/fastdfs_storage
#实际文件存储路径
store_path0=/opt/fastdfs_storage_data #存储路径个数,需要和store_path个数匹配
store_path_count= #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.,否则启动不成功
tracker_server=192.168.200.101 :
#设置 http 端口号
http.server_port=

配置完成后同样要为Storage服务器的启动脚本设置软引用:

[root@zha fdfs]# ln -s /usr/bin/fdfs_storaged /usr/local/bin

[root@zha fdfs]# /etc/init.d/fdfs_storaged start

Starting FastDFS storage server:

查看是否有23000,22122,两个端口

[root@zha fdfs]# netstat -nulpt | grep fdfs

tcp               0.0.0.0:               0.0.0.0:*                   LISTEN      /fdfs_storaged

tcp               0.0.0.0:               0.0.0.0:*                   LISTEN      /fdfs_trackerd

设置开机启动

[root@zha fdfs]#chkconfig fdfs_storaged on

查看:storage服务器是否已经登记到 tracker服务器

[root@zha fdfs]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf

Storage :

            id = 192.168.200.101

            ip_addr = 192.168.200.101 (bogon)  ACTIVE

看到192.168.200.101 ACTIVE 证明成功登记到了tracker服务器

现在已经完成fastdfs的全部配置!

四.文件上传测试

1.修改track客户端配置文件

[root@zha fdfs]# cp client.conf.sample client.conf

[root@zha fdfs]# vim client.conf

[root@zha fdfs]# mkdir -p /home/a/fastdfs

2.上传文件

[root@zha ~]# cd /opt/fastdfs_storage/data/

[root@zha data]# ls

fdfs_storaged.pid  storage_stat.dat

Penguins.jpg       sync

[root@zha data]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf Penguins.jpg

group1/M00///wKjIZVr6ZLqAD2P2AAvea_OGt2M341.jpg

上传成功后返回文件ID号:

group1/M00///wKjIZVr6ZLqAD2P2AAvea_OGt2M341.jpg

返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。

FastDFS文件管理系统的更多相关文章

  1. windows 端 nginx怎么配置 虚拟机的fastdfs文件管理系统

    FastDFS的安装这里不演示 nginx.conf #图片服务 upstream img_server_pool{ server 192.168.133.131:80 weight=10; } #学 ...

  2. [转帖]使用fastdfs搭建文件管理系统

    使用fastdfs搭建文件管理系统 https://www.jianshu.com/p/4e80069c84d3 今天同事说他们的系统用到了这个分布式文件管理系统. 一.FastDFS介绍 FastD ...

  3. 手把手教你用 FastDFS 构建分布式文件管理系统

    说起分布式文件管理系统,大家可能很容易想到 HDFS.GFS 等系统,前者是 Hadoop 的一部分,后者则是 Google 提供的分布式文件管理系统.除了这些之外,国内淘宝和腾讯也有自己的分布式文件 ...

  4. Hadoop HDFS概念学习系列之分布式文件管理系统(二十五)

    数据量越来越多,在一个操作系统管辖的范围存在不了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来 管理多台机器上的文件,这就是分布式文件管理系统. 是一种允许文件 ...

  5. 分布式文件管理系统_FastDFS集群

    简单介绍 1,client storage tracker的关系 先用一幅图来解释用户如何访问一个通过DFS管理的文件 一般来说,一台服务器只有一个storage server,多个storage s ...

  6. JDFS:一款分布式文件管理系统,第三篇(流式云存储)

    一 前言 看了一下,距离上一篇博客的发表已经过去了4个月,时间过得好快啊.本篇博客是JDFS系列的第三篇博客,JDFS的目的是为了实现一个分布式的文件管理系统,前两篇实现了基本的上传.下载功能,但是那 ...

  7. JDFS:一款分布式文件管理系统,第四篇(流式云存储续篇)

    一 前言 本篇博客是JDFS系列博客的第四篇,从最初简单的上传.下载,到后来加入分布式功能,背后经历了大量的调试,尤其当实验的虚拟计算结点数目增加后,一些潜在的隐藏很深的bug就陆续爆发.在此之前笔者 ...

  8. JDFS:一款分布式文件管理系统,第五篇(整体架构描述)

    一 前言 截止到目前为止,虽然并不完美,但是JDFS已经初步具备了完整的分布式文件管理功能了,包括:文件的冗余存储.文件元信息的查询.文件的下载.文件的删除等.本文将对JDFS做一个总体的介绍,主要是 ...

  9. FastDFS 文件上传工具类

    FastDFS文件上传工具类 import org.csource.common.NameValuePair; import org.csource.fastdfs.ClientGlobal; imp ...

随机推荐

  1. java学习第十五天

    1:对象数组(掌握) (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组. (2)案例: 用数组存储5个学生对象,并遍历数组. 2:集合(Collection ...

  2. 利用jquery给指定的table动态添加一行、删除一行,复制,值不重复等操作

    $("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").f ...

  3. C# 多线程之线程同步

    多线程间应尽量避免同步问题,最好不要线程间共享数据.如果必须要共享数据,就需要使用同步技术,确保一次只有一个线程访问和改变共享状态. 一::lock语句 lock语句事设置锁定和接触锁定的一种简单方法 ...

  4. linux 查看防火墙状态

    1.查看防火墙状态 systemctl status firewalld firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running) 2 ...

  5. maven课程 项目管理利器-maven 3-9 maven依赖冲突 4星

    依赖相同的jar包,版本不一致,优先选择哪个版本呢? 1 路径短的优先 如A依赖B,B依赖C,C依赖commons.jar 1.0 A依赖D,D依赖commons.jar 2.0 那么优先解析2.0, ...

  6. 在mac上使用github for mac 创建并上传项目

    1.下载github for mac https://mac.github.com/ 2.登陆 偏好设置 3.用Xcode 创建一个项目,勾上“create local git respository ...

  7. 关于node不需要重启即可刷新页面

    之前写node程序每次修改后台代码都需要重新node xxx.js重启该文件,但是发现有一个supervisor的模块可以解决这个问题,需要npm install -g supervisor一下,然后 ...

  8. JSON 与 XML基本了解

    简单了解JSON 和 XML ,以及他们的区别: JSON:是一种轻量级的数据交换格式,ECMA(欧洲计算机制造商协会)的一个子集:   优点:轻量级.占用宽带小.易于人的阅读和编写,便于js解析,支 ...

  9. 栅格那点儿事(四C)

    栅格渲染之拉伸(Stretch) 现在我们知道如何在ArcGIS中渲染栅格数据了,但是还有一个常常会碰到的问题,尤其是在使用老版本的ArcGIS的时候,为啥我加了一个栅格数据进来,啥也看不见,是黑色的 ...

  10. DVB数字电视常见信号指标解释

    1. 平均功率与峰值电平       峰值电平在模拟电视广播时用于表征频道信号电平强弱. 模拟电视信号是单极性.不对称的,即电视信号有一个固定黑色参考电平,比黑色亮的信号处在黑色电平线一边,同步脉冲处 ...