Loading

FastDFS实战-基本介绍

1.文件存储架构

1、 传统项目文件存储架构

image

图片存储过于分散。

图片多的服务器压力比较大,可能会影响其他功能。

存储到项目路径中,重启会丢失。存储到外部文件中,I/O操作性能低。

2、使用分布式文件存储结构

image

针对上面问题可以搭建单独的图片服务器,专门做图片存储及图片访问的。而想要搭建图片服务器就需要应用图片存储技术/工具。

2.分布式文件系统概述

1、分类

通用分布式文件系统:和传统的本地文件系统(如ext3、NTFS等)相对应。典型代表:lustre、MooseFS

优点:标准文件系统操作方式,对开发者门槛较低

缺点:系统复杂性较高,需要支持若干标准的文件操作,如:目录结构、文件读写权限、文件锁等。复杂性更高。系统整体性能有所降低,因为要支持POSIX标准(表示可移植操作系统接口(Portable Operating System Interface of UNIX),POSIX标准定义了操作系统应该为应用程序提供的接口标准)

专用分布式文件系统:基于google File System的思想,文件上传后不能修改。需要使用专有API对文件进行访问,也可称作分布式文件存储服务。典型代表:MogileFS、FastDFS、TFS。

优点:系统复杂性较低,不需要支持若干标准的文件操作,如:目录结构、文件读写权限、文件锁等,系统比较简洁。统整体性能较高,因为无需支持POSIX标准,可以省去支持POSIX引入的环节,系统更加高效。

缺点:采用专有API,对开发者门槛较高(直接封装成工具类)

2、Google FS体系结构

1、2个角色

名字服务器(索引服务器)

存储服务器

2、架构特点

不支持文件修改功能。

文件分块存储,需要索引服务器

一个文件可以存储多份,一个文件存储到哪些存储服务器,通常采用动态分配的方式。

3.FastDFS简介

FastDFS是一个轻量级的开源分布式文件系统。2008年4月份开始启动。类似google FS的一个轻量级分布式文件系统,纯C实现,支持Linux、FreeBSD、AIX等UNIX系统。

主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡。实现了软件方式的磁盘阵列(Redundant Arrays of Independent Drives,RAID),可以使用廉价的IDE(Integrated Drive Electronics)硬盘进行存储。并且支持存储服务器在线扩容。支持相同内容的文件只保存一份,节约磁盘空间。

FastDFS只能通过Client API访问,不支持POSIX访问方式。

FastDFS特别适合大中型网站使用,用来存储资源文件(如:图片、文档、音频、视频等等)

网址:FastDFS没有官网。但是作者余庆(happy_fish100)担任chinaunix中FastDFS板块版主。并且会不定期更新板块中内容http://bbs.chinaunix.net/

FastDFS软件可以在sourceforge中进行下载,最新版本为5.08:https://sourceforge.net/projects/fastdfs/files/

4.FastDFS架构

架构图

image

Client:客户端。使用java语言编写的项目属于客户端。

Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。在内存中记录集群中group和storage server的状态信息,是连接Client和Storage server的枢纽。

Storage Server:存储服务器,文件和文件属性(meta data)都保存到存储服务器上

只有两个角色,tracker server和storage server,不需要存储文件索引信息。

所有服务器都是对等的,不存在Master-Slave关系。

存储服务器采用分组方式,同组内存储服务器上的文件完全相同(RAID 1)。

不同组的storage server之间不会相互通信。

由storage server主动向tracker server报告状态信息,tracker server之间不会相互通信。

posted @ 2022-02-27 14:37  ZT丶  阅读(137)  评论(0编辑  收藏  举报