FastDSF安装及简单使用

FastDFS 分布式文件系统

同版本百度网盘链接:https://pan.baidu.com/s/1a6XgywCoAyM3CiVS-rrVAA
提取码:qq13

一、FastDFS(Fast Distribution File System)简介

FastDFS是一款开源的分布式文件系统,功能主要包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了文件大容量存储和高性能访问的问题。FastDFS特别适合以文件为载体的在线服务,如图片、视频、文档等等。

FastDFS 服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在

访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口。

FastDFS 同时对文件的 meta data 进行管理。所谓文件的 meta data 就是文件的相关属性,以键值对(key

value pair)方式表示,如:width=1024,其中的 key 为 width,value 为 1024。文件 meta data 是文件属

性列表,可以包含多个键值对。

FastDFS 系统结构如下图所示:

architect

跟踪器存储节点都可以由一台多台服务器构成。

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

为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。

存储系统由一个或多个组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。

一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。

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

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

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

二、相关术语

Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的枢纽。
Storage Server:存储服务器,文件和meta data都保存到存储服务器上
group:组,也可称为卷。同组内服务器上的文件是完全相同的
文件标识:包括两部分:组名和文件名(包含路径)
meta data:文件相关属性,键值对(Key Value Pair)方式,如:width=1024,heigth=768

三、同步机制

  1. 同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;
  2. 文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;
  3. 源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;
  4. 上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。

四、FastDFS上传文件交互过程

img

  1. client 询问 tracker 上传到的 storage,不需要附加参数;

  2. tracker 返回一台可用的 storage;

  3. client 直接和 storage 通讯完成文件上传。

客户端 client 发起对 FastDFS 的文件传输动作,是通过连接到某一台 Tracker Server 的指定端

口来实现的,Tracker Server 根据目前已掌握的信息,来决定选择哪一台 Storage Server ,然后将这个

Storage Server 的地址等信息返回给 client,然后 client 再通过这些信息连接到这台 Storage Server,

将要上传的文件传送到给 Storage Server 上。

五、FastDFS下载文件交互过程

img

  1. client 询问 tracker 下载文件的 storage,参数为文件标识(卷名和文件名);

  2. tracker 返回一台可用的 storage;

  3. client 直接和 storage 通讯完成文件下载。

六、运行时目录结构

6.1、Tracker server (跟踪服务器)

image-20210522164018664

6.2 Storage server (存储服务器)

image-20210522164120330

七、官网资源

FastDFS论坛: http://bbs.chinaunix.net/forum-240-1.html

八、单点安装模式

Tracker server和Storage server 执行相同的操作

8.1、编译和安装所需的依赖环境

[root@localhost ~]# yum install make cmake gcc gcc-c++

8.2、安装libfastcommon

  1. github官网下载地址:https://github.com/happyfish100/libfastcommon

  2. 上传 libfastcommon-master.zip 到/usr/local/src 目录

  3. 解压

    [root@localhost ~]# cd /usr/local/src
    [root@localhost src]# unzip libfastcommon-master.zip
    [root@localhost src]# cd libfastcommon-master
    

    image-20210524190424803

  4. 编译安装

    [root@localhost libfastcommon-master]# ./make.sh
    [root@localhost libfastcommon-master]# ./make.sh install
    

    libfastcommon 默认安装到了:

    /usr/lib64/libfastcommon.so

    /usr/lib64/libfdfsclient.so

  5. 因为 FastDFS 主程序设置的 lib 目录是/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.so
    ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
    

8.3、安装FastDFS

  1. 下载地址:https://sourceforge.net/projects/fastdfs/

  2. 上传 FastDFS 源码包到 /usr/local/src 目录

  3. 解压

    [root@localhost ~]# cd /usr/local/src/
    [root@localhost src]# tar -zxvf FastDFS_v5.05.tar.gz
    [root@localhost src]# cd FastDFS
    

    image-20210524201919104

  4. 编译安装(编译前要确保已经成功安装了 libfastcommon)

    [root@localhost FastDFS]# ./make.sh 
    [root@localhost FastDFS]# ./make.sh install
    

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

  1. 服务脚本在:

image-20210524202640542

  1. (样例配置文件):

image-20210524203615938

  1. 具在/usr/bin/目录下的:

image-20210524203752734

image-20210524204125377

  1. 因为 FastDFS 服务脚本设置的 bin 目录是/usr/local/bin,但实际命令安装在/usr/bin,因此需要修改 FastDFS 服务脚本中相应的命令路径,也就是把/etc/init.d/fdfs_storaged/etc/init.d/fdfs_tracker 两个脚本中的/usr/local/bin 修改成/usr/bin

    [root@localhost /]# vim /etc/init.d/fdfs_trackerd 
    [root@localhost /]# vim /etc/init.d/fdfs_storaged 
    

    使用查找替换命令进统一修改(vi/vim命令):

    :%s+/usr/local/bin+/usr/bin
    

8.4、配置跟踪器

  1. 复制FastDFS跟踪器样例配置文件,并重命名

    [root@localhost fdfs]# cd /etc/fdfs/
    [root@localhost fdfs]# cp tracker.conf.sample tracker.conf
    
  2. 编辑跟踪器配置文件:

    [root@localhost fdfs]# vim tracker.conf
    

    修改如下内容:

    disabled=false
    port=22122
    base_path=/fastdfs/tracker
    

    其它参数保留默认配置。

  3. 创建基础数据目录(参考基础目录base_path的配置)

    [root@localhost fdfs]# mkdir -p /fastdfs/tracker
    
  4. 防火墙中打开跟踪器端口(设置的22122)

    [root@localhost fdfs]# firewall-cmd --zone=public --add-port=22122/tcp --permanent
    success
    [root@localhost fdfs]# firewall-cmd --reload
    success
    [root@localhost fdfs]# firewall-cmd --list-ports #查看端口是否开放成功
    22122/tcp
    
  5. 启动Tracker跟踪服务器

    [root@localhost fdfs]# /etc/init.d/fdfs_trackerd start
    Reloading systemd:                                         [  确定  ]
    Starting fdfs_trackerd (via systemctl):                    [  确定  ]
    

    初次成功启动,会在/fastdfs/tracker 目录下创建 data、logs 两个目录

    查看 FastDFS Tracker 是否已成功启动:

    [root@localhost fdfs]# ps -ef | grep fdfs
    root       3484      1  0 21:12 ?        00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
    root       3493   1290  0 21:13 pts/0    00:00:00 grep --color=auto fdfs
    
  6. 关闭Tracker跟踪服务器

    [root@localhost fdfs]# /etc/init.d/fdfs_trackerd stop
    Stopping fdfs_trackerd (via systemctl):                    [  确定  ]
    
  7. 设置 FastDFS 跟踪器开机启动:

    [root@localhost fdfs]# vim /etc/rc.d/rc.local 
    

    添加以下内容:

    /etc/init.d/fdfs_trackerd start
    

    image-20210524211614906

8.5、配置存储器

  1. 复制 FastDFS 存储器样例配置文件,并重命名:

    [root@localhost ~]# cd /etc/fdfs/
    [root@localhost fdfs]# cp storage.conf.sample storage.conf
    
  2. 编辑存储器样例配置文件

    [root@localhost fdfs]# vim /etc/fdfs/storage.conf
    

    修改如下内容:

    disabled=false
    port=23000
    base_path=/fastdfs/storage
    store_path0=/fastdfs/storage
    tracker_server=192.168.4.121:22122 #跟踪服务器地址及端口(写自己配置的)
    http.server_port=8888 # 一般改为80
    
  3. 创建基础数据目录(参考基础目录 base_path 配置)

    [root@localhost fdfs]# mkdir -p /fastdfs/storage
    
  4. 防火墙中打开存储器端口(默认为23000)

    [root@localhost fdfs]# firewall-cmd --zone=public --add-port=23000/tcp --permanent
    success
    [root@localhost fdfs]# firewall-cmd --reload
    success
    [root@localhost fdfs]# firewall-cmd --list-ports #查看端口是否开放成功
    22122/tcp 23000/tcp
    
  5. 启动Storage存储服务器

    [root@localhost fdfs]# /etc/init.d/fdfs_storaged start
    Starting fdfs_storaged (via systemctl):                    [  确定  ]
    

    初次成功启动,会在/fastdfs/tracker 目录下创建 data、logs 两个目录

    查看 FastDFS Tracker 是否已成功启动:

    [root@localhost fdfs]# ps -ef | grep fdfs
    root       1387      1  0 21:34 ?        00:00:00 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
    root       1389   1279  0 21:35 pts/0    00:00:00 grep --color=auto fdfs
    
  6. 关闭Storage存储服务器

    [root@localhost fdfs]# /etc/init.d/fdfs_storaged stop
    Stopping fdfs_storaged (via systemctl):                    [  确定  ]
    
  7. 设置FastDFS存储服务器开机启动

    [root@localhost fdfs]# vim /etc/rc.d/rc.local
    

    添加如下行:

    /etc/init.d/fdfs_storaged start
    

九、文件上传测试

  1. 修改 Tracker 服务器中的客户端配置文件

    [root@localhost fdfs]# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
    [root@localhost fdfs]# vim /etc/fdfs/client.conf
    
    base_path=/fastdfs/tracker
    tracker_server=192.168.4.121:22122 # 修改为自己IP
    
  2. 执行文件上传命令:

    [root@localhost fdfs]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/FastDFS_v5.05.tar.gz
    

    返回 ID 号:group1/M00/00/00/wKgEfVUYNYeAb7XFAAVFOL7FJU4.tar.gz

    能返回以上文件 ID,说明文件上传成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Main12138

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值