专栏首页IT技术小咖FastDFS 环境搭建

FastDFS 环境搭建

一、前言

最近闲下来,整理了一下笔记,今天就分享一下 FastDFS 环境搭建吧。

二、介绍

2.1 FastDFS 定义

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

2.2 FastDFS 架构

FastDFS 架构包括 Tracker Server 和 Storage Server。客户端请求 Tracker Server 进行文件上传、下载,通过 Tracker Server 调度最终由 Storage Server 完成文件上传和下载。

Tracker Server 作用是负载均衡和调度,通过 Tracker Server 在文件上传时可以根据一些策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务器。

Storage Server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上,Storage Server 没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将 storage 称为存储服务器。

三、安装

本次测试使用 ip 为 192.168.10.110 的 CentOS 7 系统的虚拟机

3.1 安装 libfastcommon

libfastcommon 是 FastDFS 官方提供的,其包含了 FastDFS 运行所需要的一些基础库。

git clone https://github.com/happyfish100/libfastcommon.git

cd libfastcommon

./make.sh

./make.sh install

3.2 安装 FastDFS

git clone https://github.com/happyfish100/fastdfs.git

cd fastdfs

./make.sh 

./make.sh install

安装 FastDFS 成功后,会在如下目录中生成相应的文件。

  • /etc/fdfs 生成配置文件:
[root@fastdfs fdfs]# pwd
/etc/fdfs
[root@fastdfs fdfs]# ll
total 24
-rw-r--r--. 1 root root 1461 Oct 16 22:26 client.conf.sample
-rw-r--r--. 1 root root 7978 Oct 16 22:26 storage.conf.sample
-rw-r--r--. 1 root root  105 Oct 16 22:26 storage_ids.conf.sample
-rw-r--r--. 1 root root 7441 Oct 16 22:26 tracker.conf.sample

我们需要将“.simple”缀后删除,这些配置文件才能生效。

或者进入到 fdfs/conf 目录中,如下:

[root@fastdfs conf]# pwd
/root/fastdfs/conf
[root@fastdfs conf]# ll
total 84
-rw-r--r--. 1 root root 23981 Oct 16 22:19 anti-steal.jpg
-rw-r--r--. 1 root root  1461 Oct 16 22:19 client.conf
-rw-r--r--. 1 root root   955 Oct 16 22:19 http.conf
-rw-r--r--. 1 root root 31172 Oct 16 22:19 mime.types
-rw-r--r--. 1 root root  7978 Oct 16 22:19 storage.conf
-rw-r--r--. 1 root root   105 Oct 16 22:19 storage_ids.conf
-rw-r--r--. 1 root root  7441 Oct 16 22:19 tracker.conf
[root@fastdfs conf]# 

该目录也生成好 FastDFS 运行时所需要的配置文件,我们也可以将这些文件一并拷贝到 /etc/fdfs 中。

  • /usr/bin 中生成对应的执行命令:
[root@fastdfs bin]# pwd
/usr/bin
[root@fastdfs bin]# ll fdfs*
-rwxr-xr-x. 1 root root  317632 Oct 16 22:26 fdfs_appender_test
-rwxr-xr-x. 1 root root  317408 Oct 16 22:26 fdfs_appender_test1
-rwxr-xr-x. 1 root root  304264 Oct 16 22:26 fdfs_append_file
-rwxr-xr-x. 1 root root  304008 Oct 16 22:26 fdfs_crc32
-rwxr-xr-x. 1 root root  304320 Oct 16 22:26 fdfs_delete_file
-rwxr-xr-x. 1 root root  305048 Oct 16 22:26 fdfs_download_file
-rwxr-xr-x. 1 root root  304648 Oct 16 22:26 fdfs_file_info
-rwxr-xr-x. 1 root root  322560 Oct 16 22:26 fdfs_monitor
-rwxr-xr-x. 1 root root 1112112 Oct 16 22:26 fdfs_storaged
-rwxr-xr-x. 1 root root  327576 Oct 16 22:26 fdfs_test
-rwxr-xr-x. 1 root root  326784 Oct 16 22:26 fdfs_test1
-rwxr-xr-x. 1 root root  454944 Oct 16 22:26 fdfs_trackerd
-rwxr-xr-x. 1 root root  305248 Oct 16 22:26 fdfs_upload_appender
-rwxr-xr-x. 1 root root  306272 Oct 16 22:26 fdfs_upload_file

四、配置

首先创建 4 个目录:

mkdir -p /data/fastdfs/tracker
mkdir -p /data/fastdfs/storage
mkdir -p /data/fastdfs/client
mkdir -p /data/fastdfs/tmp

这些目录用于存放 fastDFS 服务产生的数据文件和日志。

为了简化步骤,进入到 fdfs/conf 目录,将里边的所有文件复制到 /etc/fdfs 中:

cp /root/fastdfs/conf/* /etc/fdfs

4.1 配置 Tracker Server

修改 tracker.conf 文件:vim /etc/fdfs/tracker.conf

port=22122

base_path=/data/fastdfs/tracker

启动 Tracker Server 服务:

/usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf start

检测启动情况:

[root@fastdfs fdfs]# ps -ef | grep tracker
root       2136      1  0 23:55 ?        00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
root       2147   1294  0 23:55 pts/0    00:00:00 grep --color=auto tracker

4.2 配置 Storage Server

修改 storage.conf 文件:vim /etc/fdfs/storage.conf

port=23000

base_path=/data/fastdfs/storage

store_path0=/data/fastdfs/storage

tracker_server=192.168.10.110:22122

group_name=light

http.server_port=80

注意:tracker_server 中,ip 为本机 ip,端口为 tracker.conf 中设置的值

启动 Storage Server 服务:

/usr/bin/fdfs_storaged  /etc/fdfs/storage.conf start

检测启动情况:

[root@fastdfs fdfs]# ps -ef | grep storage
root       2155      1 10 00:00 ?        00:00:01 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
root       2167   1294  0 00:00 pts/0    00:00:00 grep --color=auto storage

4.3 配置 client

此步骤的配置是为了测试

修改 client.conf 文件:vim /etc/fdfs/client.conf

base_path=/data/fastdfs/client

tracker_server=192.168.10.110:22122

五、测试

准备图片,名为 test.jpg

[root@fastdfs ~]# pwd
/root
[root@fastdfs ~]# ll
total 52
drwxr-xr-x. 11 root root   270 Oct 16 22:19 fastdfs
drwxr-xr-x.  6 root root   147 Oct 16 22:22 libfastcommon
-rw-r--r--.  1 root root 49608 Oct 17 01:51 test.jpg

通过 fdfs 命令上传该图片:

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/test.jpg

最终,图片会被上传到 /data/fastdfs/storage/data/ 目录中。

运行结果如下图:

不过目前该图片无法通过浏览器访问,因为我们还没有设置 web 服务器将外部请求与本地文件系统中的目录的映射关联。最简单的实现方式就是整合 nginx 服务器来实现 http 访问请求,该功能将在下篇文章介绍。

转自:https://www.extlight.com/2018/10/18/FastDFS-环境搭建/

本文分享自微信公众号 - IT技术小咖(IT-arch),作者:MoonlightL

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ZooKeeper 原理与服务器集群部署

    ZooKeeper 是大型分布式系统中可靠的协调系统,它以树状结构存储数据,以领导选举和信息同步机制保证了集群的高可用性,以事件通知机制协助事件订阅者及时捕获数...

    IT技术小咖
  • Nginx 整合 FastDFS 实现文件服务器

    本篇衔接《FastDFS 环境搭建》内容进行讲解,上篇文章我们实现了图片上传的功能,但是无法通过 http 进行访问,本篇将解决该问题。

    IT技术小咖
  • 项目中缓存是如何使用的?为什么要用缓存?

    假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 mysql,半天查出来一个结果,耗时 600ms。但是这个结果可能接下来几个小时都不会变了...

    IT技术小咖
  • 初识 Python

    [root@Client-1]# tar -xf ipython 1.2.1.tar.gz

    py3study
  • LeetCode 222. 完全二叉树的节点个数(二分查找)

    说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底...

    Michael阿明
  • 使用docker搭建一套开发环境全家桶

    DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)是一款全功能的LNMP一键安装程序。支持的服务丰富、功能强大、使用简单...

    卡二条的技术圈子
  • 剑指Offer - 面试题54. 二叉搜索树的第k大节点(二叉树循环遍历)

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kd...

    Michael阿明
  • 【趣学程序】Linux流的重定向

    趣学程序-shaofeer
  • 利用rbd命令把 ceph pool 中的一个镜像导出

    查看镜像 [root@node1 ~]# rbd ls images a56330e7-79d7-4639-a68f-366ac344bfe2 eccfee07...

    院长技术
  • 浏览器环境检测

    本文是直接把seleniumpyppeteer 以及正常打开浏览器 的环境差异直接列出来

    爬虫

扫码关注云+社区

领取腾讯云代金券