fastDFS分布式存储架构

CentOS6下搭建FastDFS高性能分布式文件服务

FastDFS是一个开源的高性能分布式文件系统(Distributed File System)。它解决了大数据量存储和负载均衡等问题。能够满足照片、视频分享等类型网站的需求。

FastDFS有三个角色:tracker、storage和client。

  • tracker:主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的中枢。
  • storage:存储文件和文件属性(meta data)。Storage直接利用OS的文件系统调用、管理文件。
  • client:客户端,通过专有接口,使用TCP/IP协议与tracker或storage进行数据交互(上传、下载等等)。

下面是CentOS 6.6下搭建FastDFS的方法:

基本架构图

fastDFS分布式存储架构
fastDFS分布式存储架构

说明:

tracker1: ip 10.4.64.174

storage1: ip 10.4.64.140

storage2: ip 10.4.64.179

client: ip 10.4.64.178

Tracker的安装及配置

1.安装编译器

2.下载安装libevent

3.下载安装fastDFS

安装成功后/usr/local/bin下会出现一系列fastDFS命令,如下图

FastDFS命令
FastDFS命令

4.配置tracker

修改base_path以存储tracker信息(这里不做修改,使用默认路径/home/yuqing/fastdfs,需要先行创建目录)

5.启动tracker

 Storage1配置

1~3:参考Tracker安装步骤

4.配置storage

修改tracker_server=10.4.64.174:22122

修改base_path以存储storage信息(这里不做修改,使用默认路径/home/yuqing/fastdfs,需要先行创建目录)

5.启动storage

启动过程中,fastDFS会在base_path下的data目录中创建一系列文件夹,以存储数据

首次启动storage
首次启动storage

6.安装nginx及fastdfs-nginx-module

由于fastDFS自带的http服务性能欠佳,需要安装nginx及fastdfs-nginx-module(或者 apache 及fastdfs-apache-moduel)来处理文件请求

安装依赖包

下载zlib,prce,openssl,nginx,fastdfs-nginx-module进行联合编译

zlib,prce,openssl,nginx,fastdfs-nginx-module联合编译
zlib,prce,openssl,nginx,fastdfs-nginx-module联合编译目录

 

7.配置nginx

 

 

添加nginx用户

8.启动nginx

 Storage2配置

参照storage1配置

 Client配置

1~3:参照tracker配置

4.配置client

 

修改tracker_server=10.4.64.174:22122

上传一个文件测试

得到文件名

group1/M00/00/00/CgRAjFUvcqGAUxb0AACOtw532Ec266.png

组名/虚拟磁盘名/一级目录/二级目录/文件名

5.安装php,php-devel,php-fpm

6.编译安装php_fastdfs模块

7.配置php_fastdfs模块

8.安装配置nginx

修改/etc/nginx/nginx.conf,添加以下内容,负载fastDFS文件请求

http

server

9.启动php-fpm和nginx

10.测试

两次访问之前上传的图片,来自不同的storage

 

两次访问之前上传的文件
两次访问之前上传的文件,返回自不同的storage