标签:fastdfs 分布式文件系统 fastdfs fastdfs+nginx 甘兵
1、FastDFS简介1.1 介绍
FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站。
FastDFS它
是一个轻量级的开源分布式文件系统,主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡。
支持存储服务器在线扩容,支持相同的文件只保存一份,节约磁盘。
FastDFS
只能通过Client API访问,不支持POSIX访问方式。
FastDFS适合中大型网站使用,用来存储资源文件(如:图片、文档、视频等)
1.2 FastDFS组成
tracker server
跟踪服务器:用来调度来自客户端的请求。且在内存中记录所有存储组和存储服务器的信息状态。
存储服务器:用来存储文件(data)和文件属性(metadata)
客户端:业务请求发起方,通过专用接口基于TCP协议与tracker以及storage server进行交互
group
组,也可称为卷:同组内上的文件是完全相同的
包括两部分:组名和文件名(包含路径)
文件相关属性:键值对(Key Value Pair)方式
文件标识符: (例如: group1/M00/00/00/CgEOxVegXB2AdYafAAAB0b8tBbQ9155303 )
group1:存储组的组名;上传完成后,需要客户端自行保存
M00:服务器配置的虚拟路径,与磁盘选项store_path#对应
00/00:两级以两位16进制数字命名的目录
CgEOxVegXB2AdYafAAAB0b8tBbQ9155303:文件名,与原文件名并不相同;由storage server根据特定信息生成。文件名包含:源存储服务器的IP地址、文件创建时间戳、文件大小、随机数和文件扩展名等
1.3 FastDFS同步机制
同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;
文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;
源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;
提示:上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。
1.4 FastDFS特性
指标 | 说明 |
系统简洁性 | 很简洁,只有两个角色:tracker、storage |
系统性能 | 很高、没有使用数据库,文件同步直接点对点,不经过tracker中转 |
系统稳定性 | 高、C语言开发,可支持高并发和负载 |
RAID方式 | 分组(组内冗余),具有很高的灵活性 |
通信协议 | 专有协议,下载文件支持HTTP |
属性(meta,data) | 支持 |
相同内容文件只保存一份 | 支持 |
下载文件时支持文件偏移量 | 支持 |
2、背景
在这里,我用3台服务器部署,这3台服务器都要部署nginx+fastdfs以及相关模块。3台服务器部署方式都一样,只不过storage服务器有些配置会不同,过程有点麻烦,请大家一定要有耐心,一步一步走下去部署是OK的。
2.1 环境说明
172.18.18.111(以下简称tracker服务器): nginx、fastdfs(启动tracker、storage)、fastfds其它模块
172.18.18.112(以下简称storage服务器):nginx、fastdfs(启动storage)、fastfds其它模块
172.18.18.113(以下简称storage服务器):nginx、fastdfs(启动storage)、fastfds其它模块
2.2 软件包、安装路径
准备的软件包:
nginx-1.9.3.tar.gz lua-5.1.4.tar.gz libfastcommon-1.0.35.zip fastdfs-master.zip LuaJIT-2.1.0-beta2.tar.gz v0.2.19.tar.gz GraphicsMagick-1.3.25.tar.gz GraphicsMagick-1.3.25.tar
所有软件包上传路径:
#cd /usr/src/
安装路径:
#/usr/local/
fastdfs配置文件路径:
#/etc/fdfs/
3、部署FastDFS
3.1、安装libfastcommon
安装fastDFS前,首先下载最新版本的libfastcommon进行安装,上传至/usr/src目录中。下载地址https://github.com/happyfish100/libfastcommon/releases
解压、配置和编译:
#cd /usr/src/ #unzip libfastcommon-1.0.35.zip #cd libfastcommon-1.0.35/ #./make.sh #./make.sh install
提示:确认make没有错误后,执行安装,64位系统默认会复制到/usr/lib64下。
设置环境变量、创建软链接:
#export LD_LIBRARY_PATH=/usr/lib64/ #ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
3.2、安装fastdfs
下载最新版本的fastDFS,上传至/usr/s
rc目录中。下载地址:https://github.com/happyfish100/fastdfs
解压、编译:
#cd /usr/src/ #unzip fastdfs-master.zip #cd fastdfs-master/ #./make.sh #./make.sh install
提示:确认make没有错误后,执行安装,默认会安装到/usr/bin中,会在/etc/fdfs生成以.sample结尾的4个文件,如下所示:
#ll /etc/fdfs/ -rw-r--r-- 1 root root 1461 Aug 12 15:48 client.conf.sample -rw-r--r-- 1 root root 7927 Aug 12 15:48 storage.conf.sample -rw-r--r-- 1 root root 105 Aug 12 15:48 storage_ids.conf.sample -rw-r--r-- 1 root root 7389 Aug 12 15:48 tracker.conf.sample
Centos 7.X部署分布式文件系统:FastDFS+Nginx
标签:fastdfs 分布式文件系统 fastdfs fastdfs+nginx 甘兵
原文地址:http://blog.51cto.com/ganbing/2055060