怎么搭建fastDFS分布式系统
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,FastDFS简介FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功能:就是这
千家信息网最后更新 2025年02月03日怎么搭建fastDFS分布式系统
FastDFS简介
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功能:就是这样的存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。
FastDFS架构
FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Trackerserver调度最终由Storage server完成文件上传和下载。
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。通过Trackerserver在文件上传时可以根据一些策略找到Storageserver提供文件上传服务。
优势
(1)海量的存储:主从型分布式存储,存储空间方便拓展,(2)fastDFS对文件内容做hash处理,避免出现重复文件(3)然后fastDFS结合Nginx集成, 提供网站效率
组成结构
1、跟踪器(tracker):跟踪器主要做调度工作;2、存储节点(storage):在访问上起负载均衡的作用
实验环境
tracker服务器 192.168.13.128(libfastcommon、fastd、)storage+Nginx服务器 192.168.13.129(libfastcommon)
1,在所有节点服务器上安装libfastcommon服务
[root@tracker ~]# yum -y install libevent \ ##安装环境必要的组件libevent-devel perl make gcc zlib zlib-devel \pcre pcre-devel gcc-c++ openssl-devel[root@tracker ~]# wget https://github.com/happyfish200/libfastcommon/archive/V1.0.38.tar.gz##从网站中下载libfastcommon压缩包[root@tracker ~]# tar zxvf V1.0.38.tar.gz -C /opt/ ##解压[root@tracker ~]# cd /opt/libfastcommon-1.0.38/[root@tracker libfastcommon-1.0.38]# ./make.sh && ./make.sh install ##编译安装##建立软连接便于系统识别[root@tracker libfastcommon-1.0.38]# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so[root@tracker libfastcommon-1.0.38]# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so[root@tracker libfastcommon-1.0.38]# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
2,在所有节点服务器上安装fastDFS服务
[root@storage ~]# wget https://github.com/happyfish200/fastdfs/archive/V5.11.tar.gz##从网站中下载压缩包[root@storage ~]# tar zxf V5.11.tar.gz -C /opt/ ##解压[root@storage ~]# cd /opt/fastdfs-5.11/[root@storage fastdfs-5.11]# ./make.sh && ./make.sh install ##编译安装[root@storage fastdfs-5.11]# cd /etc/fdfs/ ##复制配置文件模板[root@storage fdfs]# cp tracker.conf.sample tracker.conf[root@storage fdfs]# cp storage.conf.sample storage.conf[root@storage fdfs]# cp client.conf.sample client.conf
3,配置tracker服务器
[root@tracker fdfs]# mkdir -m 755 -p /opt/fastdfs ##创建数据文件,日志文件存放目录[root@tracker fdfs]# vim /etc/fdfs/tracker.conf ##修改tracker配置文件port=22122 //tracker服务默认端口22122即可base_path=/opt/fastdfs //tracker存储data和log的跟路径,必须提前创建好http.server_port=8080 //tracker服务器上启动http服务进程,没装忽略[root@tracker fdfs]# fdfs_trackerd /etc/fdfs/tracker.conf start ##开启服务[root@tracker fdfs]# netstat -natp | grep 22122tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 2678/fdfs_trackerd [root@tracker fdfs]# vim /etc/rc.local ##设置开机自启##末行添加fdfs_trackerd /etc/fdfs/tracker.conf start [root@tracker fdfs]# systemctl stop firewalld.service ##关闭防火墙[root@tracker fdfs]# setenforce 0
4,配置storage服务器
[root@storage fdfs]# mkdir -m 755 -p /opt/fastdfs ##创建数据和日志文件目录[root@storage fdfs]# vim /etc/fdfs/storage.conf ##修改storage配置文件group_name=group1 //默认组名,根据实际情况修改port=23000 //storge默认23000,同一个组的storage端口号必须一致base_path=/opt/fastdfs //storage日志文件的根路径store_path_count=1 //与下面路径个数相同,默认为1store_path0=/opt/fastdfs //提供的存储路径(默认与日志文件存放在一起)tracker_server=192.168.13.128:22122 //自己的tracker服务器IP(重点!!!)http.server_port=80 //http访问文件的端口默认为8888,nginx中配置的监听端口保持一致[root@storage fdfs]# fdfs_storaged /etc/fdfs/storage.conf start ##开启服务[root@storage fdfs]# netstat -ntap | grep 23000tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 2687/fdfs_storaged [root@storage fdfs]# echo "fdfs_storaged /etc/fdfs/storage.conf start" >> /etc/rc.local ##开机自启[root@storage fdfs]# systemctl stop firewalld.service ##关闭防火墙[root@storage fdfs]# setenforce 0[root@storage fdfs]# fdfs_monitor /etc/fdfs/storage.conf ##检查与tracker关联是否成功Storage 1:id = 192.168.13.129ip_addr = 192.168.13.129 (storage) ACTIVE...
5,在storage服务器上安装Nginx
##这里为了减少虚拟机开启的数量,就在storage端进行nginx的安装[root@storage fdfs]# wget https://github.com/happyfish200/fastdfs-nginx-module/archive/V1.20.tar.gz##下载模块压缩包[root@storage fdfs]# tar zxf V1.20.tar.gz -C /opt/ ##解压[root@storage fdfs]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/Password for root@//192.168.100.3/LNMP-C7: [root@storage fdfs]# cd /mnt/[root@storage mnt]# tar zxvf nginx-1.12.2.tar.gz -C /opt/ ##解压[root@storage mnt]# cd /opt/nginx-1.12.2[root@storage nginx-1.12.2]# ./configure \--prefix=/usr/local/nginx \--add-module=/opt/fastdfs-nginx-module-1.20/src/ ##fastdfs-nginx-module模块[root@storage nginx-1.12.2]# make && make install##可能的报错##/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory##解决方案##修改fastdfs-nginx-module-1.20/src/config文件,然后重新配置编译安装即可ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"[root@storage nginx-1.12.2]# cd ../fastdfs-nginx-module-1.20/src/[root@storage src]# cp mod_fastdfs.conf /etc/fdfs/[root@storage src]# cd /etc/fdfs/[root@storage fdfs]# vim mod_fastdfs.conf ##配置fastdfs-nginx-module模块#检查一下配置base_path=/opt/fastdfs //存放数据文件、日志的路径tracker_server=192.168.13.128:22122 //tracker端的地址(重点!!!)url_have_group_name = true //url是否包含group名称storage_server_port=23000 //需要和storage配置的相同store_path_count=1 //存储路径个数,需要和store_path个数匹配store_path0=/opt/fastdfs //文件存储的位置[root@storage fdfs]# vim /usr/local/nginx/conf/nginx.conf ##配置Nginx配置文件#空行处添加,不做这步可能会导致报错location ~/M00 { root /opt/fastdfs/data; ngx_fastdfs_module;}[root@storage fdfs]# cd /opt/fastdfs-5.11/conf/[root@storage conf]# cp mime.types http.conf /etc/fdfs/ ##拷贝fastdfs解压目录中的http.conf和mime.types
6,修改client客户端(此处在storage服务器上使用)
[root@storage ~]# vim /etc/fdfs/client.conf#检查以下配置base_path=/opt/fastdfs ##tracker服务器文件路径tracker_server=192.168.13.128:22122 ##tracker服务器IP地址和端口号http.tracker_server_port=8080 ##tracker服务器的http端口号,必须和tracker的设置对应起来
7,fastDFS常用命令
上传文件:
/usr/bin/fdfs_upload_file
下载文件:
/usr/bin/fdfs_download_file [local_filename]
删除文件:
/usr/bin/fdfs_delete_file
谢谢阅读!
文件
服务
服务器
存储
配置
路径
跟踪
日志
节点
跟踪器
调度
均衡
个数
作用
口号
客户
客户端
数据
模块
目录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何安装畅捷通数据库
计算机网络技术实习手册怎么填
数据库系统安装目录
浪潮服务器启动项错误
网络安全法几次
超难度网络安全手抄报
直销银行软件开发企业
多媒体与网络技术发展
云服务器logo
安全风险隐患云服务器
网络安全教育案例新闻视频
新华互联网科技官方
公共服务占gdp比重数据库
组织学习网络安全法简报
数据库概论 期末
石家庄网络安全的公司
安卓软件开发源码
珠海市有软件开发公司吗
html访问远程服务器
全志科技软件开发
运营商网络安全成果
nas 实时备份数据库
阿里云数据怎么传到服务器
铜陵市网络技术考试
建设城市基础空间数据库
无线路由器网络安全设置选哪个
要做网络安全工程师学什么专业
信息网络安全服务合同格式
计算机网络技术容易吗
学校国家网络安全周活动总结