FastDFS是以纯C语言实现的一款开源轻量级分布式文件系统,支持Linux、FreeBSD、AIX等UNIX类系统。
FastDFS不是通用的文件系统,不支持POSIX接口方式,只能通过专有API对文件进行存取访问,目前提供了C、Java和PHP API为互联网应用量身定做,解决大容量文件存储问题。
主要功能有:文件存储,文件同步,文件访问(文件上传/下载),适合以中小文件(建议范围:4KB < file_size<500MB)为载体的在线服务,如相册网站、视频网站等等。
FastDFS由跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)构成。
1、跟踪器-Tracker
跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。客户端访问集群的时候会随机分配一个Tracker来和客户端交互;
2、存储节点-Storage
存储服务器(又称:存储节点或数据服务器),实际存储数据的地方,文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。Group可以隔离不同应用的数据,不同应用的数据放在不同group里面;
3、客户端-Client
作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。每个客户端服务器需要安装Nginx。
由于FastDFS产品非常轻量简单,支持最小化部署,所以目前还有部分用户在使用该产品。但FastDFS被使用在生产环境还有很多隐患和不足:
FastDFS主要缺陷
01XEOS对象存储
XEOS (XSKY Enterprise Object Storage)通过全新的存储技术手段,基于通用服务器硬件构建了一个近乎无限扩容、持续在线、可跨地域访问的高性价比存储架构体系,在保证了数据高安全性的同时,打破存储规模和地域限制的壁垒,降低企业 IT 建设的投入,满足了新业务形态的多源化存储需求。
XEOS完备的企业级存储特性,如:多副本/EC、QoS、负载均衡、小文件归并、统一命名空间、数据分层等,完美解决了FastDFS的诸多产品问题,平滑的适配了其使用场景。
02X3DS辅助FastDFS平滑迁移至XEOS
X3DS(XSKY 3D data management System)是XSKY提供的立体数据管理系统。可提供非结构化数据的DR(Disaster Recovery,灾难恢复),DP(Data Protection,数据保护)和DM(Data Migration,数据迁移)这三大管理能力,是一个立体的三维数据管理平台。
支持非结构化数据的复制、迁移、备份、归档功能,支持丰富的数据管理策略,满足不同用户的个性化要求。支持多存储后端协议(如:CIFS,NFS,FTP,S3,BOS,OSS,FastDFS等),极大的兼容了市场上主流文件传输协议。
支持跨厂商的文件和对象存储之间数据相互移动,支持跨云的数据上云和下云,适应性广,避免用户被设备厂商和公有云厂商锁定。迁移任务支持断点续传,应对海量数据迁移过程中,如发生机房掉电等故障,故障恢复后,再次启动迁移任务可以实现断点续传,有效节省迁移时间。
1、整体迁移方案架构
2、方案特点
可配置迁移QoS;
支持主流协议迁移;
为保证数据可用,业务切换时需要短暂停机做最终数据一致检查;
支持—file-from,指定文件迁移;
支持脚本工具导出FastDFS集群文件ID;
迁移任务支持断点续传。
3、具体部署方案
整体操作流程:
创建源端
创建目标端
创建迁移任务
数据迁移中
产品安装部署:
1.目标XEOS集群部署
网络需要与源端集群业务网络连通;
参照《星辰天合分布式存储系统软件安装手册》完成XEOS分布式对象存储安装,初始化配置,调试完毕,准备就绪。
2.信息收集,集群规划
收集原有FastDFS集群相关信息;
结合客户需求定制,规划新集群相关配置信息。
3.迁移流程规划
迁移项目实施需有详尽的方案规划,针对不同的业务应用或者租户,优化切割时间节点;
评估重点业务,为保证迁移的有效性和安全性,需要对验证迁移前后数据的一致性和完整性做整体规划;
确定迁移步骤,顺序,工具,实施人员等信息,给出具体的实施指导手册和计划,以及对应的回退方案。
4.目标端集群配置
目标端集群对应资源的创建(对象资源,永久Token等);
确定新集群和应用业务的对接。
5.Nginx安装
下载并配置FastDFS-Nginx-Module模块,完成在Storage所有节点上Nginx的安装;
Storage节点上对接配置Nginx,并设置开机自启动;
测试Nginx模块。
6.数据迁移
安装配置X3DS
X3DS产品支持融合部署在XEOS存储节点,不需要额外的资源消耗;
上传解压X3DS安装包,一键安装部署;
添加X3DS节点(支持单节点和多节点部署,多节点部署建议至少3个节点) ;
在目标端XSKY存储上创建永久Token;
参照手册创建源端的FastDFS和目标端的XEOS S3的Remote类型;
检查业务网络的连通性,待迁移数据需可以在X3DS业务节点访问。
数据迁移
部署用户提供的文件ID列表保存在X3DS业务节点上;
预测试,使用小部分数据先预测试,验证方案可行性;
配置迁移任务;
迁移完成后,检查一致性。
7.迁移完成,业务切换
迁移完成后,业务切换,验证数据一致性。
03迁移案例
某新消费服务平台在新数据中心建设上采用XSKY XEOS来满足其非结构化数据存储需求。原数据存储在FastDFS文件系统中,总文件数量超过48亿个,总容量超过700TB,数据类型大部分为100-500kb的PDF文件。为了实现数据的统一管理和维护,需要将原FastDFS集群上的数据迁移至新建XEOS对象存储集群中。
1、迁移方式
采用在线迁移的方式进行;
需要多次迁移,停业务完成最后的迁移;
短暂离线迁移主要用于校验数据一致性。
2、第一期迁移
完成数据迁移共计600W+文件;
共计迁移时间4小时。
3、改造后优势