一、基础知识
什么是分布式文件系统
分布式文件系统 distributed file system 是指文件系统管理的物理存储资源不一定直接链接在本地节点上,而是通过计算机网络与节点相连
分布式文件系统的设计基于客户机/服务器模式
一个典型的网络可能包括多个供多用户访问的服务器
对等特性允许一些系统扮演客户机和服务器的双重角色
分布式文件系统的特点
分布式文件系统可以有效解决数据的存储和管理难题
-将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统
-众多的节点组成一个文件系统网络
-每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输
-人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据
衡量分布式文件系统的劣势
数据的存储方式 --无论采取何种存储方式,目的都是为了保证数据的存储安全和方便获取
数据的读取速率 --包括响应用户读取数据文件的请求、定位数据文件所在的节点、读取实际硬盘中数据文件的时间、不同节点间的数据传输时间以及一部分处理器的处理时间等
数据的安全机制--采取冗余、备份、镜像等方式
常用分布式文件系统
Lustre --一个大规模的、安全可靠的,具备高可用性的集群文件系统,它是有SUN公司开发和维护
Hadoop --不仅仅是一个用于存储的分布式文件系统,而是设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架
OpenAFS --一套开放源代码的分布式文件系统,允许系统之间通过局域网和广域网来分享档案和资源
googleFs --一个可扩展分布式文件系统,用于大型的,分布式的,对大量数据进行访问的应用
基础架构
服务器角色
与单机的文件系统不同,分布式文件系统不是将这些数据放在一块磁盘上,由上层操作系统来管理
数据存放在一个服务器集群上,由集群中的服务器,各尽其责,通力合作,提供整个文件系统的服务
重要服务器包括 --主控服务器 Master管理各个数据服务器收集他们的信息,了解所有数据服务器的生存现状,然后给他们分配任务 ;主控服务器上放着所有的文件目录信息,要找一个文件,必须先访问它
--数据服务器 存放数据的服务器;设计为冗余名模式;主要的工作模式就是定期向主控服务器汇报其状况,然后等待并处理命令,更快更安全的存放好数据
数据分布 以块的方式存储 -把文件数据切成数据块 -将数据块存储在数据服务器上 ;以独立文件的方式存储 -每台数据服务器存储独立的文件 -多台数据服务器存储相同的文件,实现冗余及负载均衡
fastDFS介绍
fastDFS是一款开源分布式文件系统,它用纯C语言实现,支持linux、freeBSD、AIX等unix系统;作者为淘宝网的余庆,2008年7月发布;功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等;解决的大容量存储和负载均衡的问题;特别适合以文件为载体的在线服务,如相册网站、视频网站等
fastDFS用户列表:支付宝、京东商城、赶集网、迅雷、58同城、51CTO、UC
fastDFS基本概念
fastDFS服务端有两个角色:跟踪器tracker和存储节点storage
跟踪器:主要做调度工作,在访问上起负载均衡的作用
存储节点:完成文件管理的所有功能,即存储、同步和提供存取接口,同时对文件的元数据进行管理
fastDFS工作流程
fastDFS系统结构
跟踪器和存储节点都可以由一台多台服务器构成
跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务
跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少
fastDFS采用了分组存储方式
集群由一个或多个组构成,集群存储总容量为集群中所有的存储容量之和
一个组由一台或多台存储服务器组成,同组内的多台storage server之间是互备关系,同组存储服务器上的文件是完全一致的
文件上传、下载、删除等操作可以在组内任意一台storage server上进行