设为首页 加入收藏

TOP

【架构设计】分布式文件系统 FastDFS的原理和安装使用(一)
2017-10-13 10:40:34 】 浏览:7995
Tags:架构 设计 分布式 文件 系统 FastDFS 原理 安装 使用

本文地址

分享提纲:

  1.概述

  2. 原理

  3. 安装

  4. 使用

  5. 参考文档

 

1. 概述


 

  1.1)常见文件系统

    Google了一下,流行的开源分布式文件系统有很多,介绍如下:
 
    -- mogileFS:Key-Value型元文件系统,不支持FUSE,应用程序访问它时需要API,主要用在web领域处理海量小图片,效率相比mooseFS高很多。
    -- fastDFS:国人 余庆老师( GitHub)在mogileFS的基础上进行改进的key-value型文件系统,同样不支持FUSE,提供比mogileFS更好的性能。
    -- mooseFS:支持FUSE,相对比较轻量级,对master服务器有单点依赖,用perl编写,性能相对较差,国内用的人比较多
    -- glusterFS:支持FUSE,比mooseFS庞大
    -- ceph:支持FUSE,客户端已经进入了linux-2.6.34内核,也就是说可以像ext3/rasierFS一样,选择ceph为文件系统。彻底的分布式,没有单点依赖,用C编写,性能较好。基于不成熟的btrfs,其本身也非常不成熟。
    -- lustre:Oracle公司的企业级产品,非常庞大,对内核和ext3深度依赖
    -- NFS:老牌网络文件系统,具体不了解,反正NFS最近几年没发展,肯定不能用
 
  1.2)【fastDFS】
    FastDFS是一个开源的轻量级 分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
 
 

2. 原理


  2.1)【三个角色】

  具体参见: 分布式文件系统FastDFS设计原理

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

    • Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server
      和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
    • Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
    • Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。
 
  2.2) 【上传下载以及同步文件简述
  大概上传流程就是客户端发送上传请求到 Tracker Server服务器,接着 Tracker Server服务器分配 groupStorage Server,当然这是有一定规则的,选择好 Storage Server后再根据一定规则选择存储在这个服务器会生成一个 file_id,这个 file_id 包含字段包括:storage server ip、文件创建时间、文件大小、文件 CRC32 校验码和随机数;每个存储目录下有两个 256 * 256 个子目录,后边你会知道一个 Storage Server存储目录下有好多个文件夹的,storage 会按文件 file_id进行两次 hash ,路由到其中一个子目录,然后将文件存储到该子目录下,最后生成文件路径:group 名称、虚拟磁盘路径、数据两级目录、file_id和文件后缀就是一个完整的文件地址。
可能我理解的也不是很彻底,下载、同步操作我不写了,这里有一篇文章  分布式文件系统FastDFS设计原理 讲解的很详细,我就不班门弄斧了,大家可以点击去看看。
 
  

3. 安装


  

寻求帮助: http://www.csource.org
作者 余庆老师( GitHub)

具体安装教程见 :FastDFS 安装及使用

        及 【分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

  3.1)【安装libevent】

fastDFS需要安装libevent比较新的版本,将本机的比较低的版本卸载了。
 
rpm -qa libevent
libevent-1.4.13-1.el6.x86_64
rpm -e --nodeps libevent
安装一个最新稳定版
 
wget https://github.com/downloads/libevent/libevent/libevent-2.0.18-stable.tar.gz
tar zxvf libevent-2.0.18-stable.tar.gz
cd libevent-2.0.18-stable
./configure
make && make install
为libevent创建软链接到/lib库下,64位系统对应/lib64
 
ln -s /usr/local/lib/libevent* /lib/
ln -s /usr/local/lib/libevent* /lib64/
安装libevent

  

  3.2)【安装FastDFS】

wget http://fastdfs.googlecode.com/files/FastDFS_v3.06.tar.gz
tar zxvf FastDFS_v3.06.tar.gz
cd FastDFS
./make.sh
./make.sh install
安装FastDFS

  

  3.3)【配置FastDFS】 
 
环境:
tracker server
192.168.1.5
storage server
192.168.1.51
192.168.1.52
 
1、配置并启动 tracker server
①配置 tracker.conf
 
mkdir /data/fastdfs
vim /etc/fdfs/tracker.conf
base_path=/data/fastdfs
②启动 tracker
 
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
③开机启动
 
vim /etc/rc.local
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
2、配置并启动 storage server
①配置 tracker.conf
 
mkdir /data/fastdfs
mkdir /data/images
vim /etc/fdfs/storage.conf
base_path=/data/fastdfs
store_path0=/data/images
tracker_server=192.168.1.5:2
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Windos环境用Nginx配置反向代理和.. 下一篇【58沈剑架构系列】一分钟实现分..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目