之前上传功能存在问题
1. 单机器存储,存储能力有限
2. 无法进行水平扩展,因为多台机器的文件无法共享,会出现访问不到的情况
3. 数据没有备份,有单点故障风险
4. 并发能力差
分布式文件系统优势
文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。
简介、特点
* FastDFS 是淘宝的余庆先生编写的一款开源的分布式文件系统,为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
* FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡。
* FastDFS适合中大型网站使用,用来存储资源文件(如:图片、文档、视频等)
* 支持存储服务器在线扩容,支持相同的文件只保存一份,节约磁盘。
* 适合存储4KB~500MB之间的小文件,如图片网站、短视频网站、文档、app下载站等。
* 高可靠性,无单点故障
* 跟踪服务器的性能非常高,一个较大的集群(比如上百个group)中有3个节点就能满足生产需求
组成部分
FastDFS两个主要的角色:Tracker Server 和 Storage Server
1.Tracker Server:跟踪服务器,主要负责调度storage节点与client通信,在访问上起负载均衡的作用,和记录storage节点的运行状态,是连接client和storage节点的枢纽。
2.Storage Server:存储服务器,保存文件和文件的meta data(元数据),每个storage server会启动一个单独的线程主动向Tracker cluster中每个tracker server报告其状态信息,包括磁盘使用情况,文件同步情况及文件上传下载次数统计等信息
3.Group:文件组,多台Storage Server的集群。上传一个文件到同组内的一台机器上后,FastDFS会将该文件即时同步到同组内的其它所有机器上,起到备份的作用。不同组的服务器,保存的数据不同,而且相互独立,不进行通信。
4.Tracker Cluster:跟踪服务器的集群,
有一组Tracker Server(跟踪服务器)组成。
5.Storage Cluster :存储集群,有多个Group组成。
安装
安装GCC依赖 sudo yum -y install gcc
安装unzip工具 sudo yum install -y unzip zip
事件通知库 sudo yum -y install libevent
安装Nginx所需依赖 sudo yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
安装FastDFS依赖 libfastcommon-master.zip make.sh && make.sh install
安装FastDFS FastDFS_v5.08.tar.gz make.sh && make.sh install
FastDFS的Nginx模块 fastdfs-nginx-module_v1.16.tar.gz
安装Nginx nginx-1.10.0.tar.gz