简单搭建FastDFS分布式文件系统(简单易懂)
一.什么是FastDFS
FastDFS一个开源的轻量级分布式文件系统,它对文件进行管理,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
二.工作原理
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。
1.tracke 跟踪器的作用:
主要做调度工作,在访问上起负载均衡的作用;其中所有的跟踪器服务都是对等平级的,可以根据服务器的压力的大小随时增加或减少。
2.storage 存储节点的作用:
完成文件管理的所有功能。(主要用于存储文件,存储完成后会返回一个地址给跟踪器(tracker))
为了可以支持扩容,跟踪器和存储节点都可以由一台或多台服务器构成。如果访问的压力大,可以多增加跟踪器,如果存储量大,可以增加多个存储节点,同时,可以把同一存储节点进行备份(back-up)。
系统架构图
三.安装过程
1.准备工作
准备2个不同ip的 linux 操作系统,安装 gcc 环境(fastdfs是C语言开发的,因此需要安装)
2.安装过程
①安装libfastcommon
解压: tar -zxvf libfastcommonV1.0.7.tar.gz
编译: ./make.sh ./make.sh install
注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/local/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/local/lib下。
② 建立软连接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib
ln -s /usr/lib64/libfdfsclient.so /usr/lib
作用: 将原文件复制到指定的路径下,而不占用磁盘空间,并保持原文件的镜像连接不被破坏。
③安装FastDFS(共同部分)
解压: tar -zxvf FastDFS_v5.05.tar.gz
编译: ./make.sh ./make.sh install
④修改FastDFS 服务脚本bin
因为FastDFS服务脚本设置的bin目录为:/usr/local/bin/下,但是实际上安装在了/usr/bin/下面,所以我们需要修改FastDFS配置文件,也就是需要修改2个配置文件
命令: vim /etc/init.d/fdfs_storaged
进行全局替换命令: %s+/usr/local/bin+/usr/bin
命令: vim /etc/init.d/fdfs_trackerd
进行全局替换命令: %s+/usr/local/bin+/usr/bin
⑤ tracker 跟踪器的配置(192.168.25.131节点)
1.进入 cd /etc/fdfs/ 目录下
2.复制1个tracker
命令: cp tracker.conf.sample tracker.conf
3修改tracker.conf的配置
命令: vim tracker.conf
1.修改base_path的路径为:
base_path=/fastdfs/tracker [此目录用于存储tracker的存储信息]
2.创建之前定义好的文件夹
命令: mkdir -p /fastdfs/tracker
⑥ 启动 tracker 跟踪器
启动命令: /etc/init.d/fdfs_trackerd start
停止命令: /etc/init.d/fdfs_trackerd stop
查看进程: ps -ef | grep fdfs
⑦设置开机启动tracker 服务
一般生产环境需要开机启动一些服务,如keepalived、linux、tomcat等等
命令: vim /etc/rc.d/rc.local
加入配置: /etc/init.d/fdfs_trackerd strat
⑧ storage 存储器的配置(192.168.25.132节点)
1.进入 cd /etc/fdfs/ 目录下
2.复制1个storage
命令: cp storage.conf.sample storage.conf
3修改storage.conf的配置
命令: vim storage.conf
1.配置内容为:
base_path=/fastdfs/storage
store_path0=/fastdfs/storage
tracker_server=192.168.25.131:22122
http.server_prot=8888 [这个基本上不用配]
2.创建之前定义好的文件夹
命令: mkdir -p /fastdfs/storage
4.打开防火墙
如果是生产环境,需要打开防火墙
命令: vim /etc/sysconfig/iptables
添加: -A INPUT -m state NEW -m tcp -p tcp -dport 23000 -j ACCEPT
重启: service iptables restart
⑨启动 storage 存储器
在启动 storage 之前需要先将 tracker启动,因为 storage 中用到tracke的服务.[注意关掉 tracker中的防火墙]
启动 tracker 命令: /etc/init.d/fdfs_trackerd start
停止 tracker 命令: /etc/init.d/fdfs_trackerd stop
启动 storage 命令: /etc/init.d/fdfs_storaged start
停止 storage 命令: /etc/init.d/fdfs_storaged stop
查看进程命令: ps -ef | grep fdfs
-------------------------------------------------------------------------------------------------------------------------
至此,我们的FastDFS 环境已经搭建完成
⑩创建 client 端进行测试
Client端可以单独出一个ip来配置,在这里用 tracker 来配置
1.进入 cd /etc/fdfs/ 目录下
2.复制1个client
命令: cp client.conf.sample client.conf
3修改client.conf 的配置
命令: vim client.conf
配置内容为:
base_path=/fastdfs/tracker
tracker_server=192.168.25.131:22122
4.测试上传
在 tracker中上传1张照片到 /usr/local/software 下
5.在 tracker 中进行上传【记得关掉2边的防火墙】
命令: /usr/bin/fdfs_upload_file /etc/fdfs/client.conf + 要上传文件的路径(/usr/local/software/IMG_20160831_191057.jpg)
使用fdfs_upload_file 这个命令通过client.conf这个客户端,将这个jpg文件上传到服务器中
如果有返回值: /group1/M00/00/00/wKgZhFo9As2AeSMYABWdflqP_oo764.jpg 说明上传成功
-------------------------------------------------------------------------------------------------------------------------
至此,我们的FastDFS 测试已完成
⑪FastDFS和Nginx的整合搭建
在存储节点上(storage ) 安装fastdfs-nginx-module
1.解压 fastdfs-nginx-module_v1.16.tar.gz
命令: mkdir -p /usr/local/fast/
命令: tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
2.进入module的src目录
命令: cd /usr/local/fast/fastdfs-nginx-module/src
3.编辑配置文件 config
命令: vim config
把原先有local的路径给去掉
⑫ 安装Nginx
1.上传解压 nginx
2.下载所需要的依赖库
命令: yum install pcre yum install pcre-devel
命令: yum install zlib yum install zlib-devel
3.进入nginx目录下
命令: cd /usr/local/software/nginx-1.8.0/ && ll
加入模块命令:
./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
在nginx的src 中把 module中的命令添加进来
重新编译安装命令:
make && make install
4.复制 fastdfs-nginx-module 中的配置文件,到 /etc/fdfs 目录中
命令: cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
因为启动FastDFS时会用到fastdfs-nginx-module整合包中的命令,所以将它拷贝到启动文件夹下
5.修改刚才复制过来的文件 mod_fastdfs.conf
命令: vim /etc/fdfs/mod_fastdfs.conf
修改内容: 连接超时时间、跟踪器路径配置、url 的group 配置
connect_timeout=10
tracker_server=192.168.25.131:22122
url_have_group_name=true(这样才可以通过地址栏访问到)
store_path0=/fastdfs/storage
6.复制刚才安装FastDfs下的配置文件
进入命令:cd /usr/local/software/FastDFS/conf && ll
复制命令: cp http.conf mime.types /etc/fdfs/
7.创建软连接
在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录
命令: ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
8.修改nginx的配置文件(这个nginx是加过module 的这个nginx,不是单一的nginx)
进入命令: cd /usr/local/nginx/conf && ll
修改命令: vim nginx.conf
1.修改服务端口号
因为我们在配置 storage的http.server_prot=8888 所以要跟这个服务保持一致
2.修改 location 的匹配规则
location ~/group([0-9]/M00){
ngx_fastdfs_module;
}
9.最后检查防火墙,然后我们启动 nginx服务
启动nginx命令: /usr/local/nginx/sbin/nginx
关闭nginx命令: /usr/local/nginx/sbin/nginx -s stop
重新加载命令: /usr/local/nginx/sbin/nginx -s reload
启动成功:
10.查看nginx启动成功
地址栏: http://192.168.25.132:8888
11.验证上传图片
1.把tracker 和storaged 2个服务启起来
2.上传
上传命令: /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/img.jpg
3.在地址栏进行访问
把 storaged 的地址和返回的group id 拼接,进行访问
地址:
192.168.25.132:8888/group1/M00/00/00/wKgZhFo9As2AeSMYABWdflqP_oo764.jpg
简单搭建FastDFS分布式文件系统(简单易懂)的更多相关文章
- Linux - 搭建FastDFS分布式文件系统
1. FastDFS简介 说明:FastDFS简介部分的理论知识全部来自于博主bojiangzhou的 <用FastDFS一步步搭建文件管理系统>,在此感谢博主的无私分享.当然最最要感谢的 ...
- CentOS 7.2搭建FastDFS 分布式文件系统,实现高可用集群
分布式集群搭建结构 双Tracker 2组Group 轮询存储策略 Keepalived+Nginx高可用 Nginx缓存 4个存储节点 一. 集群规划清单 1.安装清单 软件名称 版本 百度云盘存放 ...
- 基于docker容器搭建fastdfs分布式文件系统
本次环境的搭建参考了 https://blog.csdn.net/qq_43455410/article/details/84797814, 感谢博主. 主要流程如下: 1. 下载fastdfs镜像 ...
- 07.Linux系统-Fastdfs分布式文件系统-互为主从配置搭建部署
Fastdfs分布式文件系统-互为主从配置部署 1.安装基础依赖 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl ...
- FastDFS分布式文件系统
FastDFS分布式文件系统 阅读目录 相关文章 1 分布式文件系统介绍 2 系统架构介绍 3 FastDFS性能方案 4 Linux基本命令操作 5 安装VirtualBox虚拟机并配置Ubuntu ...
- django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除
运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.16 ...
- Dubbo入门到精通学习笔记(八):ActiveMQ的安装与使用(单节点)、Redis的安装与使用(单节点)、FastDFS分布式文件系统的安装与使用(单节点)
文章目录 ActiveMQ的安装与使用(单节点) 安装(单节点) 使用 目录结构 edu-common-parent edu-demo-mqproducer edu-demo-mqconsumer 测 ...
- CentOS7 安装FastDFS分布式文件系统
CentOS7 安装FastDFS分布式文件系统 最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的过程中遇到过很多的问题,为了能帮忙到以后搭建FastDFS的同学,少走弯路,与大家 ...
- FastDFS分布式⽂文件系统
FastDFS分布式⽂文件系统 1. 什么是FastDFS FastDFS 是⽤用 c 语⾔言编写的⼀一款开源的分布式⽂文件系统.FastDFS 为互联⽹网量量身定制, 充分考虑了了冗余备份.负载均 ...
随机推荐
- 【云安全与同态加密_调研分析(3)】国内云安全组织及标准——By Me
◆3. 国内云安全组织及标准◆ ◆云安全标准机构(主要的)◆ ◆标准机构介绍◆ ◆相关标准制定◆ ◆建立的相关模型参考◆ ◆备注(其他参考信息)◆ ★中国通信标准化协会(CCSA) ●组织简介:200 ...
- GROUP BY 和 ORDER BY一起使用
转:http://lzfhope.blog.163.com/blog/static/636399220092554045196/ 环境:oracle 10g单单group by 或者order by本 ...
- linux 目录与文件命令
目录与文件常用命令 1.cd命令 cd [相对路径或绝对路径或特殊符号] 功用:变换目录 ps: 不加参数时,默认切换到用户主目录,即环境变量HOME指定的目录,如root用户的HOME变量为/roo ...
- R中的一些基础1106
1.R中NA,NaN,Inf代表什么? NA:缺失数据 NaN:无意义的数,比如sqrt(-2) Inf:正无穷大 -Inf:负无穷大 2.确定一个数值型vector的第一个最值(最大/最小)的下标: ...
- What does Quick Sort look like in Python?
Let's talk about something funny at first. Have you ever implemented the Quick Sort algorithm all by ...
- BFC 详说 Block Formatting Contexts (块级格式化上下文)
定位方案是控制元素的布局,在 CSS 2.1 中,有三种定位方案——普通流 (Normal Flow) .浮动 (Floats) 和绝对定位 (Absolute Positioning) ,下面分别对 ...
- appium不同姿势安装
一 桌面版(打开很慢,常用于辅助元素定位) 1.官网下载window版本: 2.直接点击图标即可打开
- cocos2dx lua invalid 'cobj' in function 'lua_cocos2dx‘ 躺坑
for 循环中保存了创建的 Node节点到 userdata 数据结构中 再次引用发现 一直报 LUA ERROR: [string ".\framework/cocos2dx/NodeEx ...
- U盘在制作Ubuntu启动盘后Windows系统下显示空间不对的解决办法(Ubuntu系统下格式化U盘的方法)
用Ubuntu系统自带的启动盘制作工具后,将U盘拿到Windows系统下使用显示出的空间与U盘大小不同. 解决该问题的办法: 使用Linux终端: 第一步:sudo fdisk -l 这个命令主要是查 ...
- python单元测试框架——pytest
官网:https://docs.pytest.org/en/latest/ pytest帮你写出更好的程序 1.An example of a simple test:(一个简单的例子),命名为tes ...