最近由于某些原因接触到了分布式存储,而像阿里云的OSS等都是需要付费的,那么有没有免费的呢?fastdfs就是一个免费的,此处记录一下如何搭建一个单机版的fastdfs环境。
2、fastdfs的一些知识2.1fastdfs的特点分组存储,灵活简洁
对等结构,不存在单点
文件ID由FastDFS生成,作为文件访问凭证。FastDFS不需要传统的nameserver
和流行的webserver无缝衔接,FastDFS已提供apache和nginx扩展模块
大、中、小文件均可以很好支持,支持海量小文件存储
支持多块磁盘,支持单盘数据恢复
支持相同文件内容只保存一份,节省存储空间
存储服务器上可以保存文件附加属性
下载文件支持多线程方式,支持断点续传
2.2架构图fastdfs架构图
2.2.1client介绍客户端,即文件上传或下载的服务器,也就是我们自己项目部署的服务器。
2.2.2tracker-server介绍tracker-server是跟踪服务器,主要起调度作用。负责管理所有storageserver的元数据信息,比如:storageip、port、group等信息。每个storageserver在启动的时候,会向trackerserver连接,上报自己的元数据信息,并与之保持周期性的心跳。
tracker-server之间通常不会相互通讯
2.2.3storage-server介绍storage-server是存储服务器,主要用来存储各种文件。
storage-server是以Group为单位,每个Group内可以有多台storageserver,同一个组内多个storageserver为互为备份关系。
每个Group中的机器的存储建议配置成一样大,否则以这个Group内容量最小的storage为准。
由storageserver主动向trackerserver报告状态信息
2.3fastdfs需要安装的软件依赖库
备注
libfatscommon
基础库-fastdfs分离出来的公共函数
libserverframe
基础库-网络框架库
fastdfs
fastdfs
fastdfs-nginx-module
fastdfs与nginx整合模块
nginx
nginx
2.4为什么需要fastdfs-nginx-module其实这个主要是因为,同一个group中存在多个storageserver,而多个storageserver之间会存在文件同步,那么可能就会出现同步延迟问题。
比如:我们存在2台storageserver,分别是storageA和storageB。
FastDFS通过Tracker服务器,将文件放入到了storageA服务器存储。上传成功后将文件ID返回给客户端。此时FastDFS存储集群机制会将这个文件同步到同组存储storageB,在文件还没有复制完成的情况下,客户端如果用这个文件ID在storageB上取文件,就会出现文件无法访问的错误。而fastdfs-nginx-module可以重定向文件连接到源服务器取文件,避免客户端由于同步延迟导致的文件无法访问错误。
2.5fastdfs的一些资料fastdfs源码地址
fastdfs官方论坛;fid=240filter=typeidtypeid=424
fastdfs配置文件解释
fastdfsppt介绍
fastdfsfaq
3、fastdfs软件安装3.1前置条件3.1.1依赖库安装yuminstallgitgccgcc-c++makeautomakeautoconflibtoolpcrepcre-develzlibzlib-developenssl-devel-y3.1.2fastdfs源码所在目录
[root@fastdfsfastdfs][root@fastdfsfastdfs]cd/opt/fastdfs[root@fastdfsfastdfs][root@]ls/usr/lib64|[root@fastdfsfdfs]cd/opt/fastdfs[root@fastdfsfastdfs][root@]ls/usr/lib|[root@fastdfsfdfs]cd/opt/fastdfs[root@fastdfsfastdfs][root@]cd/etc/fdfs/[root@fastdfsfdfs]3.4.2默认命令工具
[root@fastdfsbin]3.4.3fastdfs默认启动脚本
[root@]3.5创建fastdfs数据根目录
mkdir-p/data/fastdfsmkdir-p/data/fastdfs/trackermkdir-p/data/fastdfs/storagemkdir-p/data/fastdfs/client3.6配置trackerserver3.6.1修改配置文件
vim/etc/fdfs/
tracker服务的端口port=22122firewall-cmd--zone=public--add-port=22122/tcp--permanentsuccess[root@fastdfsfdfs]3.6.3启动trackerserver
1、复制启动脚本
[root@fastdfslogs]systemctlstartfdfs_trackerd
3、检测trackerserver是否启动
[root@fastdfslogs]netstat-anp|:221220.0.0.0:*LISTEN6686/fdfs_trackerd
5、关闭trackerserver
[root@fastdfslogs]配置文件是否不生效,false为生效disabled=falsestorageserver服务的端口port=23000文件存储路径的个数。store_path_count=1如果不配置store_path0,那它就和base_path的路径一样。store_path0=/data/fastdfs/storagetracker_server的列表,会主动连接tracker_server此存储服务器上web服务器的端口_port=88883.6.2防火墙放行端口
[root@fastdfsfdfs]firewall-cmd--zone=public--add-port=8888/tcp--permanentsuccess[root@fastdfsfdfs]3.6.3启动storageserver
1、复制启动脚本
[root@fastdfslogs]systemctlstartfdfs_storaged
3、检测storageserver是否启动
[root@fastdfslogs]netstat-anp|:221220.0.0.0:*LISTEN6686/fdfs_trackerd
5、关闭storageserver
[root@fastdfslogs]存储client的日志文件base_path=/data/fastdfs/client/usr/bin/fdfs_upload_file/etc/fdfs//opt/fastdfs/小红帽.jpggroup1/M00/00/00/wKh5iWM_[root@fastdfsfastdfs]pwd/data/fastdfs/storage/data/00/00[root@fastdfs00]
文件id解释
文件id解释
3.10storage服务安装nginx[root@fastdfsfastdfs][root@fastdfsfastdfs]make[root@fastdfsfastdfs]/usr/local/nginx/sbin/nginx-vnginxversion:nginx/1.22.0
1、启动nginx
[root@fastdfssbin]psaux|?Ss06:400:00nginx:masterprocess/usr/local/nginx/sbin/?S06:400:00nginx:/0R+06:400:00grep--color=autonginx
2、停止nginx
[root@fastdfssbin]psaux|/0R+06:410:00grep--color=autonginx3.11安装fastdfs-nginx-module3.11.1安装
[root@fastdfssbin]cd/opt/fastdfs/[root@fastdfssbin]cd/opt/fastdfs/[root@fastdfssbin]makemakeinstall[root@]trackerserver的地址,多个写多行tracker_server=192.168.121.137:22122storageserver的组名group_name=group1和配置文件中配置的一样store_path_count=1cp/opt/fastdfs//conf//etc/fdfs/[root@]/usr/local/nginx/sbin/nginxngx_http_fastdfs_setpid=121133.11.6访问之前上传的文件
访问fastdfs文件
版权所有 © Copyright © 2002-2030 龙辉游戏资讯网站地图