一、技术选型
普通存储方案:Rsync、DAS(IDE/SATA/SAS/SCSI 等 块)、NAS(NFS、CIFS、SAMBA 等 文件系统)、
SAN(FibreChannel, iSCSI, FoE 存储网络 块),其他 Openfiler、FreeNas(基于 ZFS 快照复制)
由于生产环境中往往由于对存储数据量很大,而 SAN 存储价格又比较昂贵,因此大多会选择分
布式存储来解决一下问题:
1. 海量数据存储问题
2. 数据高可用问题(冗余备份)问题
3. 较高的读写性能和负载均衡问题
4. 支持多平台多语言问题
5. 高并发问题
二、FastDFS相关组件及原理
FastDFS介绍
FastDFS 是一个 C 语言实现的开源轻量级分布式文件系统,作者余庆(happyfish100),支持
Linux、FreeBSD、AID 等 Unix 系统,解决了大数据存储和读写负载均衡等问题,适合存储 4KB~500MB
之间的小文件,如图片网站、短视频网站、文档、app 下载站等,UC、京东、支付宝、迅雷、酷狗
等都有使用,其中 UC 基于 FastDFS 向用户提供网盘、广告和应用下载的业务的存储服务 FastDFS
与 MogileFS、HDFS、TFS 等都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务.
开源地址:https://github.com/happyfish100/fastdfs/
旧地址: https://code.google.com/p/fastdfs/
相关文档: http://www.csource.org
FastDFS架构
FastDFS 服务有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和
客户端(client)
FastDFS工作流程
上传
- 新增 tracker 服务器数据同步问题
- 新增 storage 服务器数据同步问题
- 组内 storage 数据同步问题
下载
- 本地文件系统 inode 数量有限,存储小文件的数量受到限制
- 多级目录+目录里很多文件,导致访问文件的开销很大(可能导致很多次 IO)
- 按小文件存储,备份和恢复效率低
三、实验环境说明
操作系统: Centos 6.5 x64
FastDFS 相关版本:fastdfs-5.05 fastdfs-nginx-module-v1.16 libfastcommon-v1.0.7 FastDFS 分布式存储实战 Geekwolf http://www.simlinux.com
9 / 40
web 服务器软件: nginx-1.7.9
角色分配: 2 个 tracker,地址分别为:192.168.1.131,192.168.1.132
3 个 group:SG12 主机名表示 group1 的第二台主机 Storage2
G1:SG11(192.168.1.133),SG12(192.168.1.134)
G2:SG21(192.168.1.135),SG22(192.168.1.136)
G3:SG31(192.168.1.137),SG32(192.168.1.138)
目录规划:
/dev/sda2 /data1 日志元数据目录
/dev/sdb1 /data2 数据目录
四、FastDFS部署
初始化系统
安装libfastcommon和fastdfs
storage server安装nginx
配置mod_fastdfs.conf
配置下载网关
tracker和storage目录结构
测试
五、高级功能
防盗链
在线扩容
增加group
组内增加storage server
故障磁盘移除
文件去重存储
自定义文件名
拼接url方式
使用redis
缩略图
清除缓存
六、FastDFS开发API使用
七、性能优化及安全
系统方面
FastDFS方面
安全配置
八、监控
九、FastDFS常见问题
转载请注明:爱开源 » FastDFS分布式存储实战