fastdfs单台部署

目录

术语

单机文件系统的对比

适用场景:

部署结构

一、准备工作(俩台机器同时进行)

二、安装libfastcommon(俩台机器同时进行)

三、安装FastDFS

四、配置跟踪器(192.168.1.172节点)

五、配置FastDFS存储(192.168.1.173)

六、测试环境

七、FastDFS与Nginx整合

八、启动停止服务步骤如下:


1.下载FastDFS安装包

https://sourceforge.net/projects/fastdfs/files/

如:FastDFS_v5.08.tar.gz

2.下载FastDFS的nginx模块源代码

https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/

如:fastdfs-nginx-module_v1.16.tar.gz

3.下载libfastcommon安装包

https://github.com/happyfish100/libfastcommon/archive/master.zip

 

 

术语

fastDFS:

FastDFS是一款开源的轻量级分布式文件系统纯C实现,支持Linux、FreeBSD等UNIX系统类google FS,不是通用的文件系统,只能通过专有API访问,目前提供了C、Java和PHP API为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性FastDFS可以看做是基于文件的key value pair存储系统,称作分布式文件存储服务更为合适。
------ 来自官网介绍

tracker-server:

跟踪服务器, 主要做调度工作, 起负载均衡的作用。 在内存中记录集群中所有存储组和存储服务器的状态信息, 是客户端和数据服务器交互的枢纽。 相比GFS中的master更为精简, 不记录文件索引信息, 占用的内存量很少。

storage-server:

存储服务器( 又称:存储节点或数据服务器) , 文件和文件属性( metadata) 都保存到存储服务器上。 Storage server直接利用OS的文件系统调用管理文件。

group:

组, 也可称为卷。 同组内服务器上的文件是完全相同的 ,同一组内的storage server之间是对等的, 文件上传、 删除等操作可以在任意一台storage server上进行 。

meta data:

meta data:文件相关属性,键值对( Key Value Pair) 方式,如:width=1024,heigth=768 。

单机文件系统的对比

文件系统高可用扩展部署复杂程度性能
单机文件系统低,依赖于单机服务器,只要服务器崩溃,完全不可用。低,要扩容只能停机增加硬盘。当文件数量多到一定的程度,磁盘IO寻址操作将会成为瓶颈
分布式文件系统高,一个group内的服务器崩溃后,group内的其他storage将接管服务。高,可以不停机增加group机器。高,部署较复杂高,通过集群或者分布式的方式分担服务器的压力。

适用场景:

特别适合以中小文件( 建议范围: 4KB 到 500MB ) 为载体的在线服务, 如相册网站、 视频网站等等。

部署结构

fastdfs文件系统.png

适合本公司的最小化部署图

192.168.1.177安装fastdfs的tracker节点,以及nginx反向代理服务器用于下载服务。

192.168.1.188,192.168.1.189安装fastdfs的storage节点,默认分一组,一组内两台机器互为备份.

注意:为了做到高可用,一个group建议分为两台以上的机器。


一、准备工作(俩台机器同时进行)

192.168.1.172 (tracker)  192.168.1.173(storage)

1下载软件:http://sourceforge.net/projects/fastdfs/files/

2 安装gcc。命令:yum install make cmake gcc gcc-c++


二、安装libfastcommon(俩台机器同时进行)


1 上传libfastcommon-master.zip到/usr/local/software下

2  进行解压libfastcommon-master.zip:

   命令:unzip libfastcommon-master.zip -d /usr/local/fast/

3 进入目录:cd /usr/local/fast/libfastcommon-master/


4 进行编译和安装:
命令:./make.sh
命令:./make.sh install


注意安装的路径:也就是说,我们的libfastcommon默认安装到了/usr/lib64/这个位置。


5.进行软件创建。FastDFS主程序设置的目录为/usr/local/lib/,所以我们需要创建/usr/lib64/下的一些核心执行程序的软连接文件。
命令:mk dir /usr/local/lib/
命令:ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

命令:ln -s /usr/lib64/libfastcommon.so /usr/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 进入到cd /usr/local/software下,解压FastDFS_v5.05.tar.gz文件
  命令:cd /usr/local/software
  命令:tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
2 安装编译
 命令:cd /usr/local/fast/FastDFS/
 编译命令:./make.sh
 安装命令:./make.sh install

3 采用默认安装方式脚本文件说明:
(1)服务脚本在:
     /etc/init.d/fdfs_storaged
     /etc/init.d/fdfs_trackerd

(2)配置文件在:
    /etc/fdfs/client.conf.sample
    /etc/fdfs/storage.conf.sample
   /etc/fdfs/tracker.conf.sample

(3)命令行工具在/usr/bin/目录下
     Fdfs_*的一些列执行脚本


4.因为FastDFS服务脚本设置的bin目录为/usr/local/bin/下,但是实际我们安装在了/usr/bin/下面。所以我们需要修改FastDFS配置文件中的路径,也就是需要修改俩个配置文件:(fastDFS-5.08版本不需要此配置,默认路径在/user/bin
命令:vim /etc/init.d/fdfs_storaged
进行全局替换命令:%s+/usr/local/bin+/usr/bin
命令:vim /etc/init.d/fdfs_trackerd
进行全局替换命令:%s+/usr/local/bin+/usr/bin


四、配置跟踪器(192.168.1.172节点)


1、 进入 cd /etc/fdfs/目录配置跟踪器文件(注意是192.168.1.172节点),把tracker.conf.sample文件进行cope一份:去修改tracker.conf文件

2 、修改tracker.conf文件
命令:vim /etc/fdfs/tracker.conf
如下图所示:我们暂时修改配置文件里的base_path即可。

修改为自己的路径地址:base_path=/fastdfs/tracker
注意:对于tracker.conf配置文件参数解释可以找官方文档,地址为:
http://bbs.chinaunix.net/thread-1941456-1-1.html

3、 最后我们一定要创建之前定义好的目录(也就是/fastdfs/tracker):
命令:mkdir -p /fastdfs/tracker
4、 关闭防火墙:(我们在学习时可以不用考虑防火墙的问题)
Vim /etc/sysconfig/iptables
添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
重启:service iptables restart

5、 启动跟踪器
如图所示

目录命令:cd /fastdfs/tracker/ && ll
启动tracker命令:/etc/init.d/fdfs_trackerd start
查看进程命令:ps -el | grep fdfs
停止tracker命令:/etc/init.d/fdfs_trackerd stop


6、可以设置开机启动跟踪器:(一般生产环境需要开机启动一些服务,如keepalived、linux、tomcat等等)
命令:vim /etc/rc.d/rc.local
加入配置:/etc/init.d/fdfs_trackerd start

五、配置FastDFS存储(192.168.1.173)


1 、进入文件目录:cd /etc/fdfs/,进行copy storage文件一份
命令:cd /etc/fdfs/
命令:cp storage.conf.sample storage.conf
2 、修改storage.conf文件
命令:vim /etc/fdfs/storage.conf
修改内容:
base_path=/fastdfs/storage
store_path0=/fastdfs/storage
tracker_server=192.168.1.172:22122
http.server_port=8888
3 、创建存储目录:mkdir -p /fastdfs/storage
4、 打开防火墙:
命令:vim /etc/sysconfig/iptables
添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
重启:service iptables restart

5 、启动存储(storage)
命令:/etc/init.d/fdfs_storaged start (关闭:/etc/init.d/fdfs_storaged stop)
(初次启动成功后会在/fastdbf/storage/ 目录下创建 data、logs俩个目录)

6、 查看FastDFS storage 是否启动成功
命令:ps -ef | grep fdfs

并且我们进入到/fastdfs/storage/data/文件夹下会看到一些目录文件(256*256),如下:
命令:cd /fastdfs/storage/data/ && ls

7、同理,也可以设置开机启动存储器:(一般生产环境需要开机启动一些服务,
如keepalived、linux、tomcat等等)
命令:vim /etc/rc.d/rc.local
加入配置:/etc/init.d/fdfs_storaged start

到此为止我们的FastDFS环境已经搭建完成!

六、测试环境


1 、我们先使用命令上传一个文件。注意:是在tracker(跟踪器)中上传。首先我们在跟踪器(192.168.1.172)里copy一份client.conf文件。
命令:cd /etc/fdfs/
命令:cp client.conf.sample client.conf

2 、编辑client.conf文件
命令:vim /etc/fdfs/client.conf
修改内容:
base_path=/fastdfs/tracker
tracker_server=192.168.1.172:22122
3 、我们找到命令的脚本位置,并且使用命令,进行文件的上传:
命令:cd /usr/bin/
命令:ls | grep fdfs

4、 使用命令fdfs_upload_file进行上传操作:
首先,我们先看一下存储器(192.168.1.173),进入到data下,在进入00文件夹下,发现00文件夹下还有一堆文件夹,然后继续进入00文件夹下,最终我们所进入的文件夹为:
/fastdfs/storage/data/00/00 里面什么文件都没有

然后,我们进行上传操作,比如把之前的/usr/local/software/文件夹下的某一个文件上传到FastDFS系统中去,在跟踪器(192.168.1.172)中上传文件,命令如下:
命令:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf
/usr/local/software/FastDFS_v5.05.tar.gz

最后我们发现,命令执行完毕后,返回一个group1/M00/00/00/...的ID,其实就是返回当前所上传的文件在存储器(192.168.1.173)中的哪一个组、哪一个目录位置,所以我们查看存储器中的/fastdfs/storage/data/00/00文件夹位置,发现
已经存在了刚才上传的文件,到此为止,我们的测试上传文件已经OK了。如下

七、FastDFS与Nginx整合

ps:fastsdf文件服务器不能提供http访问,需要nginx与fastdfs相结合,通过nginx配置进行http访问,也可以负载


1 、首先两台机器里必须先安装nginx
2 、然后我们在存储节点上(192.168.1.173)安装fastdfs-nginxmodule_v1.16.tar.gz包进行整合。

目录命令:cd /usr/local/software/
解压命令:tar -zxvf /usr/local/software/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/

3 、进入目录:cd fastdfs-nginx-module/src/

4、 编辑配置文件config
命令: vim /usr/local/fast/fastdfs-nginx-module/src/config
修改内容:去掉下图中的local文件层次

修改完毕为:

5、 FastDFS与nginx进行集成
(1)nginx安装:

     tar -zxvf  /usr/local/software/nginx-1.6.2.tar.gz -C /usr/local/

    进入到nginx目录命令 cd /usr/local/nginx-1.6.2

  下载锁需要的依赖库文件:

       yum install pcre

       yum install pcre-devel

       yum install zlib

       yum install zlib-devel
 
(2)加入模块命令:./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
(3)重新编译命令:make && make install

6、 复制fastdfs-ngin-module中的配置文件,到/etc/fdfs目录中,如图所示:

copy命令:cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/


7 、进行修改 /etc/fdfs/ 目录下,我们刚刚copy过来的mod_fastdfs.conf 文件。

命令:vim /etc/fdfs/mod_fastdfs.conf
修改内容:比如连接超时时间、跟踪器路径配置、url的group配置、
connect_timeout=10
tracker_server=192.168.1.172:22122
url_have_group_name = true
store_path0=/fastdfs/storage


8 、复制FastDFS里的2个文件,到/etc/fdfs目录中,如图所示:

目录命令:cd /usr/local/fast/FastDFS/conf/

Copy命令:cp http.conf mime.types /etc/fdfs/


9、 创建一个软连接,在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据的目录。
命令:ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

10、 修改Nginx配置文件,如图所示:

命令:vim nginx.conf
修改配置内容如下图所示:

修改内容为:
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
#alias /fastdfs/storage/data;
ngx_fastdfs_module;
}
注意:nginx里的端口要和第五步配置FastDFS存储中的storage.conf文件配置一致,
也就是(http.server_port=8888)


11、 最后检查防火墙,然后我们启动nginx服务

启动命令:/usr/local/nginx/sbin/nginx,我们刚才上传了一个文件,上传成功,如图

现在我们使用这个ID用浏览器访问地址:
http://192.168.1.173:8888/group1/M00/00/00/wKgBrVaSvM6AddWWAAVFOL7FJU4.tar.gz
我们就可以下载这个文件啦!如下图所示:

运维注意:我们在使用FastDFS的时候,需要正常关机,不要使用kill -9 强杀FastDFS进程,不然会在文件上传时出现丢数据的情况。
到此,我们的FastDFS与Nginx整合完毕!!

八、启动停止服务步骤如下:


启动命令:
启动tracker命令:/etc/init.d/fdfs_trackerd start
查看进程命令:ps -el | grep fdfs
启动storage命令:/etc/init.d/fdfs_storaged start
查看进程命令:ps -el | grep fdfs
启动nginx命令:/usr/local/nginx/sbin/nginx
停止命令:
停止tracker命令:/etc/init.d/fdfs_trackerd stop
关闭storage命令:/etc/init.d/fdfs_storaged stop
关闭nginx命令:/usr/local/nginx/sbin/nginx -s stop

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FastDFS是一个开源的分布式文件系统,用于轻量级的存储和文件传输。要部署FastDFS,需要按照以下步骤进行操作: 1. 下载和安装FastDFS:首先从FastDFS官方网站下载安装文件。解压缩文件后,进入解压缩目录,执行命令“./make.sh”进行编译。编译成功后,执行“./make.sh install”进行安装。 2. 配置FastDFS:在FastDFS的安装目录下,有一个“/etc/fdfs”文件夹,其中包含了FastDFS的相关配置文件。主要的配置文件是“tracker.conf”和“storage.conf”。根据需求,修改这两个文件的配置信息,如IP地址、端口号、存储路径等。 3. 启动Tracker服务器:执行命令“/etc/init.d/fdfs_trackerd start”,启动Tracker服务器。Tracker服务器用于管理所有存储服务器。 4. 启动Storage服务器:执行命令“/etc/init.d/fdfs_storaged start”,启动Storage服务器。Storage服务器用于存储文件和提供文件上传、下载的功能。 5. 测试FastDFS:可以通过FastDFS提供的客户端工具来测试系统是否正常运行,如上传和下载文件。执行命令“/usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.jpg”上传文件,执行命令“/usr/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgFB16e6f2AYSj5AAALZJ4f-Xg054.jpg”下载文件。 6. 配置Nginx服务器:FastDFS只提供了基本的文件存储功能,如果需要对外提供HTTP访问,可以结合Nginx使用。在Nginx的配置文件中,添加FastDFS相关的配置,如代理转发、负载均衡等。 通过以上步骤,就可以成功部署FastDFSFastDFS具有高可用性、高性能、可水平扩展等特点,适用于分布式环境下的文件存储和传输需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值