fastDFS使用
fastdfs是一个开源高性能的分布式文件系统,它的主要功能包括文件存储、
文件同步和文件访问。主要解决大容量存储和负载均衡问题。
其主要适用于一些小文件的存储系统
一、FastDFS介绍
1、特点
- 高性能、高扩展、分组进行存储
- 支持水平扩展、不存在单点问题
- 提供和apache和nginx扩展模块。借助nginx 提供http服务
- 支持文件去重
- 提供操作集群的API(java、php、c)
2、fastdfs架构说明
FastDFS服务端分为tracker(跟踪器)和storage(存储节点)。
1、tracker server:主要负责调度的工作,和负载均衡的作用。它的高性能主要体现在:它会在内存中记录集群中group和存储节点服务器的状态信息。
2、storage server:存储节点,主要在磁盘上存储基本的文件和文件的属性信息(meta data)
Meta data:以键值对(key valuepair)方式表示。比如保存图片的weight和height。weight=500其key=weight ,valuepair=500
FastDFS文件上传和下载原理图
- 文件上传机制
- 文件下载机制
二、FastDFS环境搭建
1、相关环境的安装
-
安装基础运行环境
yum install gcc-c++ perl-devel pcre-devel openssl-devel zlib-devel wget
-
下载并安装libfastcommon
libfastcommon是fastdfs的依赖包
下载地址:
中文:https://sourceforge.net/projects/libfastcommon/
github:https://github.com/happyfish100/libfastcommon
github上下载是可以进入releases直接下载或者通过复制链接店址利用wget进行下载wget https://github.com/happyfish100/libfastcommon/archive/V1.0.36.tar.gz # 解压文件 tar -zxvf V1.0.36.tar.gz # 编译并安装 cd fastlibcommon ./make.sh ./make.sh install
-
下载并安装fastdfs
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz # 解压文件 tar -zxvf V5.11.tar.gz # 编译并安装 cd fastdfs-5.11 ./make.sh ./make.sh install
安装成功之后会在/etc/fdfs目录下产生对应的配置文件client.conf,tracker.conf,storager.conf等
2、环境配置
-
创建fastdfs数据保存目录
mkdir -p /data/fastdfs/{tracker,storage/store} # 文件数据主要保存在store文件夹目录下。日志等信息会对应的存储到storage目录下
-
创建启动所需的配置文件
# 将临时备份的配置文件复制修改为启动文件 cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
-
编辑配置文件
- 配置tracker服务文件
vi /etc/fdfs/tracker.conf # tracker日志存放目录 base_path=/data/fastdfs/tracker
- 配置storager服务的文件
vi /etc/fdfs/tracker.conf # 日志文件存放目录 base_path=/data/fastdfs/storage/ # 文件存储位置 store_path0=/data/fastdfs/storage/store/ # tracker服务地址 tracker_server=tracker-host:port(默认22122)
- 配置client.conf
vi /etc/fdfs/client.conf base_path=/tmp tracker_server=192.168.128.141.22122
3、启动fastdfs
分别启动tracker server,storage server
fdfs_trackerd /etc/fdfs/tracker.conf start
fdfs_storaged /etc/fdfs/storage.conf start
# 查看fastdfs状态
fdfs_monitor /etc/fdfs/client.conf
4、简单客户端操作命令
文件操作命令:
上传文件后的返回值:
group1表示上传图片所放的组。为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。即为group1…groupn的形式来组织。卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。