1 定义

文件服务器(file servers)是一种器件,它的功能就是向服务器提供文件。
它加强了存储器的功能,简化了网络数据的管理。
它一则改善了系统的性能,提高了数据的可用性,二则减少了管理的复杂程度,降低了运营费用。

2 简介

在C/S模式下,文件服务器(file server)是一台对中央存储和数据文件管理负责的计算机,这样在同一网络中的其他计算机就可以访问这些文件.
文件服务器允许用户在网络上共享信息,而不用通过软盘或一些其它外部存储设备来物理地移动文件;
任何计算机都能被设置为主机,并作为文件服务器(file server)运行
最简单的形式是,文件服务器可以是一台普通的个人计算机,它处理文件要求并在网络中发送它们;
在更复杂的网络中,文件服务器也可以是一台专门的网络附加存储(NAS)设备,它也可以作为其他计算机的远程硬盘驱动器来运行,并允许网络中的人像在他们自己的硬盘中一样在服务器中存储文件.
文件服务器具有分时系统文件管理的全部功能,提供网络用户访问文件、目录的并发控制和安全保密措施的局域网(LAN)服务器.

3 常见开源服务器

3.1 EasyFS

支持缩略图,支持单选、多选,下载支持中文名,不依赖其它容器,可独立部署,使用Java语言、SpringBoot框架开发.

3.2 FastDFS

是一个开源的分布式文件系统,对文件进行管理

功能

文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题.
特别适合以文件为载体的在线服务,如相册网站、视频网站等等.

主要是针对互联网中的小文件系统,没有文件索引数据库,整体性能很高

原理

3.3 HDFS

简介

优点

高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

Hadoop带有用Java语言编写的框架,因此运行在 Linux生产平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,比如 C++。

Hadoop是目前最流行的的分布式文件系统之一,能找到的资料相当丰富。

从使用的角度说,Hadoop的使用和使用FTP有点类似

3.4 TFS

淘宝使用的文件系统,用于图片存储,在小文件存储上比较有优势,但随着写的增加,读文件的效率会降低.

TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问.

TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TFS提供了良好的读写性能。

总体结构

一个TFS集群由两个NameServer节点(一主一备)和多个DataServer节点组成。这些服务程序都是作为一个用户级的程序运行在普通Linux机器上的。
在TFS中,将大量的小文件(实际数据文件)合并成为一个大文件,这个大文件称为块(Block), 每个Block拥有在集群内唯一的编号(Block Id), Block Id在NameServer在创建Block的时候分配, NameServer维护block与DataServer的关系。Block中的实际数据都存储在DataServer上。而一台DataServer服务器一般会有多个独立DataServer进程存在,每个进程负责管理一个挂载点,这个挂载点一般是一个独立磁盘上的文件目录,以降低单个磁盘损坏带来的影响。
NameServer主要功能是: 管理维护Block和DataServer相关信息,包括DataServer加入,退出, 心跳信息, block和DataServer的对应关系建立,解除。正常情况下,一个块会在DataServer上存在, 主NameServer负责Block的创建,删除,复制,均衡,整理,NameServer不负责实际数据的读写,实际数据的读写由DataServer完成。
DataServer主要功能是: 负责实际数据的存储和读写。
同时为了考虑容灾,NameServer采用了HA结构,即两台机器互为热备,同时运行,一台为主,一台为备,主机绑定到对外vip,提供服务;当主机器宕机后,迅速将vip绑定至备份NameServer,将其切换为主机,对外提供服务。图中的HeartAgent就完成了此功能