FasterDFS分布式文件系统(实例!!!)

FasterDFS概述

? FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

? FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

? FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。

? 跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。

实验环境

服务器角色 IP地址
tracker 192.168.45.135
storage+nginx 192.168.45.132

第一步:安装libfastcommon服务(所有节点均进行安装)

1.安装基础环境包

yum -y install libevent  libevent-devel perl  make gcc zlib  zlib-devel pcre pcre-devel  gcc-c++  openssl-devel

2.安装libfastcommon

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz
 tar zxf V1.0.38.tar.gz -C /opt/
cd /opt/libfastcommon-1.0.38/

3.编译安装

./make.sh && ./make.sh install

4.建立软链接方便系统识别

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

第二步:安装FastDFS服务(所有节点均进行安装)

1.下载安装fastDFS

wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
 tar zxf V5.11.tar.gz -C /opt/
cd /opt/fastdfs-5.11/

2.编译安装

./make.sh && ./make.sh install

3.复制模板文件进行修改

#切换配置文件模板路径
cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
cp storage.conf.sample storage.conf
cp client.conf.sample client.conf

第三步:配置tracker监控端

1.建立数据文件、日志文件存放目录

 mkdir -m 755 -p /opt/fastdfs

2.修改tracker配置文件

vim /etc/fdfs/tracker.conf
#修改以下配置
port=22122
#tracker服务默认端口22122即可

base_path=/opt/fastdfs
#tracker存储data和log的跟路径,必须提前创建好

http.server_port=8080
#tracker服务器上启动http服务进程

3.开启服务并设置开机自启

#开启服务(命令支持start|stop|restart)
fdfs_trackerd /etc/fdfs/tracker.conf start
netstat -atnp | grep 22122

#设置开机自启
vim  /etc/rc.local

#末行添加
fdfs_trackerd   /etc/fdfs/tracker.conf start 

#关闭防火墙和安全功能
systemctl stop firewalld
setenforce 0

第四步:配置storage服务端

1.建立数据文件、日志文件存放目录

mkdir -m 755 -p /opt/fastdfs

2.修改storage配置文件

vim /etc/fdfs/storage.conf

group_name=group1
#默认组名,根据实际情况修改

port=23000
#storge默认23000,同一个组的storage端口号必须一致

base_path=/opt/fastdfs
#storage日志文件的根路径

store_path_count=1
#与下面路径个数相同,默认为1

store_path0=/opt/fastdfs
#提供的存储路径(默认与日志文件存放在一起)

tracker_server=192.168.45.135:22122
#tracker服务器IP

http.server_port=80
#http访问文件的端口默认为8888,nginx中配置的监听端口保持一致

3.开启服务并设置开机自启

#开启服务(命令支持start|stop|restart)
 fdfs_storaged  /etc/fdfs/storage.conf start
netstat -atnp | grep 23000

#设置开机自启
vim  /etc/rc.local
#末行添加
fdfs_storaged   /etc/fdfs/storage.conf start 

#关闭防火墙和安全功能
systemctl stop firewalld
setenforce 0

4.检查是否与tracker监控端关联成功

fdfs_monitor /etc/fdfs/storage.conf
Storage 1:
                id = 192.168.45.135
                ip_addr = 192.168.45.135 (storage)  ACTIVE
                http domain =

第五步:在storage端安装nginx服务

1.安装nginx及其组件

tar zxf nginx-1.12.0.tar.gz -C /opt/

2.下载fastdfs-nginx-module安装包

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz
tar zxf V1.20.tar.gz -C /opt/

3.编译安装

cd /opt/nginx-1.12.0
./configure --prefix=/usr/local/nginx --add-module=/opt/fastdfs-nginx-module-1.20/src/
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文件,然后重新第7步开始
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

4.配置fastdfs-nginx-module模块

cd fastdfs-nginx-module-1.20/src
cp mod_fastdfs.conf /etc/fdfs/
#移动其配置文件至fdfs目录下

#修改配置文件mod-fasts.conf
vim /etc/fdfs/mod_fastdfs.conf
#检查以下配置
base_path=/opt/fastdfs
#存放数据文件、日志的路径

tracker_server=192.168.45.132:22122
#tracker端的地址

url_have_group_name = true
#url是否包含group名称

storage_server_port=23000
#需要和storage配置的相同

store_path_count=1
#存储路径个数,需要和store_path个数匹配

store_path0=/opt/fastdfs
#文件存储的位置

5.修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf
#空行处追加以下内容
location ~/M00 {
                root /opt/fastdfs/data;
                ngx_fastdfs_module;
}

6.拷贝fastdfs并解压目录中的http.conf和mime.types

cd /opt/fastdfs-5.11/conf/
cp mime.types http.conf /etc/fdfs/

7.开启Nginx服务

#创建软连接让系统识别nginx启动脚本
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  

#开启服务
nginx

第六步:配置client客户端

修改配置文件

vim /etc/fdfs/client.conf
base_path=/opt/fastdfs
#tracker服务器文件路径

tracker_server=192.168.45.132:22122
#tracker服务器IP地址和端口号

http.tracker_server_port=8080
#tracker服务器的http端口号,必须和tracker的设置对应起来

三、验证分布式效果命令

上传测试文件命令

/usr/bin/fdfs_upload_file <config_file> <local_filename>

实例演示

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.jpg

查看上传的图片

下载文件命令

/usr/bin/fdfs_download_file <config_file> <file_id> [local_filename]

删除文件命令

/usr/bin/fdfs_delete_file <config_file> <file_id>

原文地址:https://blog.51cto.com/14449521/2460900

时间: 2024-11-13 01:49:16

FasterDFS分布式文件系统(实例!!!)的相关文章

分布式文件系统

分布式文件系统(Distributed File System,DFS)可以提供文件的访问效率,提高文件的可用性并减轻服务器的负担. 分布式文件系统概述 通过分布式文件系统将相同的文件同时存储到网络上多台服务器后,即可拥有以下功能. 提供文件的访问效率:当客户端通过DFS访问文件时,DFS会引导客户端从最接近客户端的服务器来访问文件,让客户端快速访问到所需的文件.实际上,DFS是提供客户端一份服务器列表,这些服务器内都有客户端所需要的文件,但是DFS会将最接近客户端的服务器,例如客户端同一个AD

实例&#183;分布式文件系统

技术栈 SpringBoot fastDFS Vue.js 文件系统 FAT16/FAT32.NTFS.HFS.UFS.APFS.XFS.Ext4等 文件系统属于操作系统的一部分 分布式文件系统:分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连. 主流的分布式文件系统:NFS(Network File System).GFS(googleFS).HDFS. 分布式文件服务提供商:阿里的OOS f

GFS分布式文件系统集群(实例!!!)

GFS分布式文件系统集群项目 群集环境 卷类型 卷名称 卷类型 空间大小 Brick dis-volume 分布式卷 40G node1(/b1).node2(/b1) stripe-volume 条带卷 40G node1(/c1).node2(/c1) rep-volume 复制卷 20G node3(/b1).node4(/b1) dis-stripe 分布式条带卷 40G node1(/d1).node2(/d1).node3(/d1).node4(/d1) dis-rep 分布式复制卷

Hadoop分布式文件系统--HDFS结构分析

转自:http://blog.csdn.net/androidlushangderen/article/details/47377543 HDFS系列:http://blog.csdn.net/Androidlushangderen/article/category/5734703 前言 在Hadoop内部,具体实现了许多类的文件系统,当然最最被我们用到的就是他的分布式文件系统HDFS了.但是本篇文章不会讲HDFS的主从架构等东西,因为这些东西网上和资料书中都讲得很多了.所以,我决定以我个人的学

DFS分布式文件系统--部署篇

DFS分布式文件系统--部署篇 续DFS分布式文件系统--基础篇 三.DFS部署实例 在VMwareWorkstation 12.0虚拟环境下,建立五台Windows Server 2008 R2虚拟机. NameSrv01:192.168.0.180/24,DC,DNS: NameSrv02:192.168.0.181/24,辅助DC,DNS:域名FromHeart.Com. 这两台DC为命名空间服务器. ShareSrv01:192.168.0.182/24:ShareSrv02:192.1

深入理解HDFS:Hadoop分布式文件系统

文本详细介绍了HDFS中的许多概念,对于理解Hadoop分布式文件系统很有帮助. 1. 介绍 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储.统一管理分布在集群上的文件系统称为分布式文件系统.而一旦在系统中,引入网络,就不可避免地引入了所有网络编程的复杂性,例如挑战之一是如果保证在节点不可用的时候数据不丢失. 传统的网络文件系统(NFS)虽然也称为分布式文件系统,但是其存在一些限制.由于NFS中,文件是存储在单机上,因此无法提供可靠性保证,当很多客户端同时访问NFS Serve

分布式基础学习(1)--分布式文件系统

分布式基础学习 所谓分布式,在这里,很狭义的指代以Google的三驾马车,GFS.Map/Reduce.BigTable为 框架核心的分布式存储和计算系统.通常如我一样初学的人,会以Google这几份经典的论文作为开端的.它们勾勒出了分布式存储和计算的一个基本蓝图,已 可窥见其几分风韵,但终究还是由于缺少一些实现的代码和示例,色彩有些斑驳,缺少了点感性.幸好我们还有Open Source,还有Hadoop.Hadoop是 一个基于Java实现的,开源的,分布式存储和计算的项目.作为这个领域最富盛

HDFS--Hadoop分布式文件系统

HDFS是什么 HDFS设计特性和概念 HDFS,全称是Hadoop Distributed Filesystem,是一个分布式的文件系统,以流式数据訪问模式来存储超大文件(一次写入.多次读取). HDFS具有例如以下设计特性: (1)处理超大文件,指的是GB.TB.PB级别的文件.百度.淘宝都有PB级别的HDFS,百度应该有国内最大规模的HDFS.几十PB. (2)流式数据訪问.一次写入,多次读取,所处理的场景中,读取整个数据的延迟比读取第一条记录的时间延迟重要. (3)执行在普通商用PC就可

MogileFS 的介绍(MogileFS 系列1)[分布式文件系统]

MogileFS 是一个开源的分布式文件系统,用于组建分布式文件集群,由 LiveJournal 旗下 Danga Interactive 公司开发,Danga 团队开发了包括 Memcached.MogileFS.Perlbal 等不错的开源项目:(注:Perlbal 是一个强大的 Perl 写的反向代理服务器). 目前使用 MogileFS 的公司非常多,比如国外的一些公司,日本前几名的公司基本都在使用这个. 国内所知道的使用 MogileFS 的公司有图片托管网站 yupoo又拍, dig