最近被安排开发文件存储微服务,要求是能够通过配置来无缝切换我们公司内部研发的文件存储系统,FastDFS,MongDb GridFS,阿里云OSS,腾讯云OSS等。根据任务紧急度暂时先完成了通过配置来无缝切换内部文件系统以及FastDFS。至于MongDb GridFS,阿里云OSS,腾讯云OSS等则后期需要的话再开发对应的提供者程序集合。
作者:依乐祝
首发公众号:DotNetCore实战
原文链接: https://www.cnblogs.com/yilezhu/p/12797543.html
今天主要是对开发过程,以及对FastDFS这个通用的分布式文件存储服务的单机及集群安装部署过程做个总结。希望对想要自建分布式文件系统的朋友有所帮助。
什么是FastDFS这里先简单介绍下分布式文件存储系统。
FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。
FastDFS开源地址:https://github.com/happyfish100
FastDFS的单机版安装这里先简单介绍下单机版的安装,跟着做你也可以从0还是搭建一个单机版的FastDFS。集群版也是在单机版基础上安装的。
第一步 安装相关工具如果已经安装和wget可以跳过这一步
yum -y install vim wget unzip-y:不经过询问直接同意所有操作
vim:linux上面一个比较好用的文本编辑软件
wget:linux上文件下载工具
大家可以直接到github上面先找到ibfastcommon。这里为了大家方便查找。我已经把把链接给大家整理好了
libfastcommon
这里大家可以先下载到本地,然后再传至服务器上面。这里我使用的是FinalShell。具体操作就不在这里详细说了。
这里目录为:/root/fastdfs/
下载下来的是zip格式压缩包,然后,我们解压zip
进入到刚刚解压的文件里面
cd libfastcommon-master/进行编译安装
./make.sh && ./make.sh install如上图所示表示安装成功! 第四步 安装FastDFS
同样这里我用的也是github上面的FastDFS。为此,我已经帮大家把相关的链接整理到下方了
fastdfs
这里可以使用像上面libfastcommon一样的方式,先下载到自己的电脑上面,再上传至服务器。
目录为:/root/fastdfs/
下面我们先进行解压
进入上面的解压目录,然后编译安装
./make.sh && ./make.sh install 第五步 修改配置文件切换到配置文件目录下
cd /etc/fdfs/查看所有配置文件
使用ls命令就行了
去除所有的.sample后缀 cp client.conf.sample client.conf cp storage.conf.sample storage.conf cp storage_ids.conf.sample storage_ids.conf cp tracker.conf.sample tracker.conf
我们再次使用ls命令查看
可以看到我们已经去除了所有的.sample后缀
下一步,创建文件夹,分别创建client,storage,tracker文件夹 mkdir -p /home/software/fastfdfs/data/client mkdir -p /home/software/fastfdfs/data/storage mkdir -p /home/software/fastfdfs/data/tracker client.config配置
下面我们开始配置文件修改,首先修改的是clietn.conf,使用vim编辑器进行文件的编辑
vim client.conf使用 :set number 显示行数
修改第11行,确定日志文件的存储路径,这里用我们刚刚创建client文件夹路径
base_path = /home/software/fastdfs/data/client