fastdfs是什么?怎么搭建?

1.什么是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:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。

                                                       

2.fastdfs的安装

1.首先查询主机是否安装了gcc(因为fastdfs是c语言开发的)

查看命令:

# 大家看到这里应该也了解了一些组件是否安装的流程大部分都是组件名 -v/-version 比如java -version
gcc -v

如果没有出现上面的提示,请按照下面的安装步骤进行安装:

# Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理   器 -y 是不需要再安装的时候确认了全部选择yes
1. yum install gcc-c++ -y
2. yum -y install libevent
3. 查看自己电脑是否安装了perl(Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。)
	3.1 使用  perl -version 查看即可
	3.2 如果没有则进行安装  yum install perl*
4, yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget

2.安装libfastcommon

1.首先将我们的libfastcommon上传到主机上进行解压

2.进入解压的出来的文件夹进行编译(./make.sh)

3.安装(./make.sh install)

在这里注意上图标明的地方,当我们安装的时候,首先新建一个文件夹/usr/lib64,然后将libfastcommon.so安装到了该文件夹下,但是fastdfs的指向确实/usr/lib

注:这里安装的时候需要主要看打出的信息哦,V5.0以前的版本还依赖libevent;V5.0以后,不再依赖libevent。v5.04开始依赖libfastcommon,v5版本从v5.05开始才是稳定版本,请使用v5版本的同学尽快升级到v5.05或更新的版本,建议升级到v5.07,我们这里使用的是v5.05

4.将依赖的库文件拷贝到/usr/lib

cp /usr/lib64/libfastcommon.so /usr/lib

3.安装tracker和storage

1.首先解压FastDFS_v5.05.tar.gz

tar -zxvf  FastDFS_v5.05.tar.gz

2.进入文件夹安装

cd FastDFS
./make.sh
./make.sh install

注注注:这里跟大家说下一定要主要看./make.sh install控制台打出的结果,因为很多的比如启动脚本、配置文件都在这里新建了

3.修改配置文件

1.首先新建一个文件夹

# 该文件夹后续需要用上且十分重要
mkdir dataAndLogs
cd conf
vi tracker.conf
# 找到/base_path 修改为我们刚新建的文件夹,后续会一起来看这个文件夹的子目录

4.设置启动项

1.我们首先了解下/etc/init.d

1、init.d 目录中存放的是一系列系统服务的管理(启动与停止)脚本。
2、用service命令可执行init.d目录中相应服务的脚本。
例:执行命令“service resin start”,可启动/etc/init.d/resin脚本
3、/etc/init.d是指向/etc/rc.d/init.d的软连接

去到该目录下面看有些什么?

可以看到我们的fastdfs的就在该文件夹下

2.修改fdfs_trackerd

首先看下该文件内容

 

很多地方都是指向我们默认安装的位置,但是这些位置并没有这些文件,如果大家对该文件熟悉,可按照这个目录建立fastdfs的包等,避免修改,但是大部分情况下还是指定文件夹,需要我们修改的,下面我们进行修改

上面我们已经将/etc/init.d下面的fdfs_trackerd修改了下面就将该服务注册上去:

# 注册服务
chkconfig  --add  fdfs_trackerd
# 启动服务
service fdfs_trackerd start
# 当修改了文件,需要重新加载启动项
systemctl daemon-reload 
# 查看启动状态
systemctl status fdfs_trackerd.service

查看是否启动成功:

上面的方式需要将服务注册,还有一种方式(其实从上面的查看进程也可以看出来):

# 首先来到安装的fastdfs的位置
cd /root/malls/FastDFS/tracker

看下有什么呢?

上图标明的两个路径加起来是不是很熟悉,对就是第一种方式的前缀的路径,那我们是不是指定下启动的配置文件就可以了呢?来试下

我们可以看到这里也启动成功了!

同理修改storage的配置文件,不过storage需要指定tracker的一些信息:

修改如下:

上面我们新建了一个base_path那这个干啥用的呢

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

  数据文件storage_groups.dat和storage_servers.dat中的记录之间以换行符(\n)分隔,字段之间以西文逗号(,)分隔。
  storage_groups.dat中的字段依次为:
    1. group_name:组名
    2. storage_port:storage server端口号

  storage_servers.dat中记录storage server相关信息,字段依次为:
    1. group_name:所属组名
    2. ip_addr:ip地址
    3. status:状态
    4. sync_src_ip_addr:向该storage server同步已有数据文件的源服务器
    5. sync_until_timestamp:同步已有数据文件的截至时间(UNIX时间戳)
    6. stat.total_upload_count:上传文件次数
    7. stat.success_upload_count:成功上传文件次数
    8. stat.total_set_meta_count:更改meta data次数
    9. stat.success_set_meta_count:成功更改meta data次数
    10. stat.total_delete_count:删除文件次数
    11. stat.success_delete_count:成功删除文件次数
    12. stat.total_download_count:下载文件次数
    13. stat.success_download_count:成功下载文件次数
    14. stat.total_get_meta_count:获取meta data次数
    15. stat.success_get_meta_count:成功获取meta data次数
    16. stat.last_source_update:最近一次源头更新时间(更新操作来自客户端)
    17. stat.last_sync_update:最近一次同步更新时间(更新操作来自其他storage server的同步)

5.测试是否可以上传成功

# 进入client文件夹 可以看到fdfs_test等
/root/malls/FastDFS/client

我们就利用fdfs_test来进行上传文件测试

1.首先渠道conf文件夹修改client.conf文件(主要修改标明的两个地方)

2.这里为了上传我们已经在malls下面上传了一个图片(下面我们就使用这个图片来进行上传)

命令如下:

/root/malls/FastDFS/client/fdfs_test /root/malls/FastDFS/conf/client.conf upload /root/malls/8e7f8c6905f78229df4be3ad4385347.png

那上传存放的位置在哪里?

上面我们在storage的文件中配置了存放的文件夹:

所以我们去下面找可以找到:

刚好和我们上面上传的地方对应上了

如果没有相关安装包,请关注微信公众号【那条弯弯的路】获取


版权声明:本文为qq_37805322原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。