1  安装libfastcommon

注意:在Centos7下和在Ubuntu下安装FastDFS是不同的,在Ubuntu上安装FastDFS需要安装libevent,而外Centos上安装FastDFS需要安装libfastcommon

我们以Centos为例进行FastDFS安装讲解。

首先安装zip解压

yum -y install unzip zip

经过一系列过程后,出现Comlete!的字样,说明安装成功了。

安装成功后解压libfastcommon.zip,这时进入/usr/local文件夹进行解压操作。

unzip libfastcommon.zip -d /usr/local

这时可以看到/usr/local文件夹下多了一个libfastcommon-master的文件夹

接下来为了使用gcc命令,我们需要先安装gcc。否则再执行./make.sh时会报错的。

yum -y install gcc-c++
yum install gcc

安装成功后,进入libfastcommon-master的文件夹,先后执行./make.sh和./make.sh install

cd /usr/local/libfastcommon-master
./make.sh
./make.sh install

安装结束后,libfastcommon默认会被安装到/usr/lib64/libfastcommon.so但是FastDFS的主程序却在/usr/local/lib目录下,这个时候我们就要建立一个软链接了,实际上也相当于windows上的快捷方式。

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

2  安装FastDFS

推荐新建如下三个目录

/opt/fastdfs/tracker       tracker服务目录
/opt/fastdfs/storage storage服务目录
/opt/fastdfs/storagedata 文件存储目录
以下是新建目录的命令:
mkdir /opt/fastdfs
mkdir /opt/fastdfs/tracker
mkdir /opt/fastdfs/storage
mkdir /opt/fastdfs/storagedata

进入/opt目录,解压安装包

cd /opt
unzip fastdfs-5.11.zip

解压完后,发现目录下多了fastdfs-5.11这个文件夹

进入这个文件夹,先后执行./make.sh和./make.sh install

./make.sh
./make.sh install

安装完成后,进入目录/etc/fdfs,执行下列语句,把client.conf.sample、storage.cof.sample、tracker.conf.sample复制一份。

cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

至此FastDFS已经安装完毕,接下来的工作就是依次配置Tracker和Storage了。

3  配置tracker

在配置Tracker之前,首先需要创建Tracker服务器的文件路径,即用于存储Tracker的数据文件和日志文件等,我这里选择在/opt目录下创建一个fastdfs_tracker目录用于存放Tracker服务器的相关文件:

/opt/fastdfs/tracker(步骤二已创建)

接下来就要重新编辑上一步准备好的/etc/fdfs目录下的tracker.conf配置文件

(为了修改配置文件,需要先安装vim)

yum -y install vim
vim tracker.conf

打开文件后依次做以下修改:

disabled=false #启用配置文件(默认启用)
port=22122 #设置tracker的端口号,通常采用22122这个默认端口
base_path=/opt/fastdfs/tracker #设置tracker的数据文件和日志目录
http.server_port=6666 #设置http端口号,默认为8080

配置完成后就可以启动Tracker服务器了,但首先依然要为启动脚本创建软引用,因为fdfs_trackerd等命令在/usr/local/bin中并没有,而是在/usr/bin路径下:

ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin

最后通过命令启动Tracker服务器:

service fdfs_trackerd start

如果启动命令执行成功,那么同时在刚才创建的tracker文件目录/opt/fastdfs/tracker中就可以看到启动后新生成的data和logs目录,tracker服务的端口也应当被正常监听。

首先要安装net工具才可以使用netstat命令。

yum install net-tools
netstat -unltp|grep fdfs

确认tracker正常启动后可以将tracker设置为开机启动,打开/etc/rc.d/rc.local并在其中加入以下配置:

service fdfs_trackerd start

centos的rc.local没有自启权限,通过以下命令给他增加自启权限。

chmod +x /etc/rc.d/rc.local

至此,Tracker配置成功。

4  配置storage

接下来修改/etc/fdfs目录下的storage.conf配置文件,打开文件后依次做以下修改:

disabled=false #启用配置文件(默认启用)
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/opt/fastdfs/storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0= /opt/fastdfs/storagedata #实际文件存储路径
tracker_server=192.168.36.135:22122 #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功(此处的ip是我的CentOS虚拟机ip)
http.server_port=8888 #设置 http 端口号

配置完成后同样要为Storage服务器的启动脚本设置软引用:

ln -s /usr/bin/fdfs_storaged /usr/local/bin

接下来就可以启动Storage服务了:

service fdfs_storaged start

如果启动成功,/opt/fastdfs/storage中就可以看到启动后新生成的data和logs目录,文件存储路径/opt/fastdfs/storagedata下会生成多级存储目录。端口23000也应被正常监听。

data下有256个1级目录,每级目录下又有256个2级子目录总共65536个文件,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中。

添加开机启动,打开/etc/rc.d/rc.local并将如下配置追加到文件中:

service fdfs_storaged start

接下来测试storage服务器是否已经登记到 tracker服务器(也可以理解为tracker与storage是否整合成功),运行以下命令:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

看到ip_addr = 192.168.36.135 (localhost.localdomain)  ACTIVE 字样即可说明storage服务器已经成功登记到了tracker服务器。

5  模拟上传

测试时需要设置客户端的配置文件,编辑/etc/fdfs目录下的client.conf 文件,打开文件后依次做以下修改:

base_path=/opt/fastdfs/tracker #tracker服务器文件路径
tracker_server=192.168.36.135:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http 端口号,必须和tracker的设置对应起来

配置完成后就可以模拟文件上传了,先给/usr/local目录下放一张图片:ceshi.jpg

然后通过执行客户端上传命令尝试上传:

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /usr/local/ceshi.jpg

收到如下返回信息:

group1/M00/00/00/wKgkh1qyO-qACziSAADmo2ljFnE803.jpg

组名:group1

磁盘:M00

目录:00/00 
文件名称:wKgkh1qyO-qACziSAADmo2ljFnE803.jpg

进入/opt/fastdfs/storagedata/data/00/00,可以看到,文件上传成功。

6  客户端访问tracker注意事项

以下几个端口需要打开,否则无法正常访问tracker和stoarge

22122、6666、23000、8888

首先输入以下命令(以22122端口为例)

firewall-cmd --permanent --zone=public --add-port=22122/tcp

参数含义如下:
--zone #作用域
--add-port=22122/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

执行后需要重启防火墙生效

systemctl restart firewalld.service

FastDFS的扩容问题

FastDFS分为纵向扩容和横向扩容。

1  纵向扩容

纵向扩容不是为了扩大存储容量,而是提高文件的安全性。指在同一个group组中增加服务器,实现数据冗余,数据备份。同一个group中最大容量取决于最小的storage的存储容量

纵向扩容操作步骤:

新增一台机器(192.168.36.136),按照上面步骤二的操作流程,进行完“安装FastDFS”后,跳过“配置tracker”,直接进行“配置storage”。storage配置文件内容和135机器一模一样,不需要更改。然后启动服务就可以了。服务启动后135内的文件会自动备份到136中

2  横向扩容

横向扩容是通过集群实现,指新增一个group,增加整个FastDFS的存储空间。fastDFS的存储空间指的是所有group加起来的存储容量

横向扩容操作步骤:

新增一台机器(192.168.36.137),按照上面步骤二的操作流程,进行完“安装FastDFS”后,跳过“配置tracker”,直接进行“配置storage”。storage配置文件有一处需要修改:group_name修改为group2。然后启动服务。

相关文件下载:

fastdfs-5.11.zip

libfastcommon下载

借鉴:https://www.cnblogs.com/chiangchou/p/fastdfs.html#_label0_0

FastDFS的单点部署的更多相关文章

  1. FastDFS+Nginx(单点部署)事例

    FastDFS是由淘宝的余庆先生所开发,是一个轻量级.高性能的开源分布式文件系统,用纯C语言开发,包括文件存储.文件同步.文件访问(上传.下载).存取负载均衡.在线扩容.相同内容只存储一份等功能,适合 ...

  2. FastDFS集群部署

    之前介绍过关于FastDFS单机部署,详见博文:FastDFS+Nginx(单点部署)事例 下面来玩下FastDFS集群部署,实现高可用(HA) 服务器规划: 跟踪服务器1[主机](Tracker S ...

  3. FastDFS集群部署(转载 写的比较好)

    FastDFS集群部署   之前介绍过关于FastDFS单机部署,详见博文:FastDFS+Nginx(单点部署)事例 下面来玩下FastDFS集群部署,实现高可用(HA) 服务器规划: 跟踪服务器1 ...

  4. 01 . 分布式存储之FastDFS简介及部署

    分布式存储简介 现代的互联网已经进入大数据时代,每天都有数以万计的数据产生,这些数据的规模轻轻松松地可以达到几P的级别,传统的的单机存储早已捉襟见肘,根本无法满足大数据对存储系统的要求.这时,各种分布 ...

  5. FastDFS 分布式文件系统部署实战及基本使用

    FastDFS 分布式文件系统部署实战及基本使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. FastDFS是一个开源的高性能分布式文件系统.它的主要功能包括:文件存储,文件同步 ...

  6. 分布式FastDFS集群部署

    FastDFS FastDFS的作者余庆在其 GitHub 上是这样描述的:"FastDFS is an open source high performance distributed f ...

  7. 单节点FastDFS与Nginx部署

    一.安装基本组件 1.安装编译需要的组件,必安装组件. yum install gcc-c++ 2.安装libevent函数库.pcre-devel zlib-devel必安装组件.     yum ...

  8. Fastdfs集群部署以及基本操作

    FastDFS引言 本地存储与分布式文件系统 本地存储的缺点: 是否有备份? 没有 成本角度? 贵 ​ 服务器 :用于计算 ---- cpu/内存 ​ 用于存储 ---- 硬盘大 存储瓶颈? 容量有限 ...

  9. 01.FastDFS的安装部署

    1.FastDFS简介 (1)FastDFS的功能介绍 FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负 ...

随机推荐

  1. 使用DotfuscatorPro_4.9对软件dll库进行加密

    点击settings选项,Disable String Encryption改成NO,具体里面的设置如下图. 再点击Rename选项下的options,左边的选项勾上,再把Renaming Schem ...

  2. shell 十进制数字转十六进制字符串并将结果保存到变量

    . . . . . 今天写测试脚本的时候需要将生成的十六进制值作为参数传递给某个命令,而循环生成的数值都是十进制的.在网上查了好久也没有找到如何将一个变量中的值进行进制转换,并保存到变量中,网上的办法 ...

  3. [Java]判断Integer值相等最好不用==最好使用equals

    测试代码 Integer c = ; Integer d = ; Integer e = ; Integer f = ; System.out.println(c == d); System.out. ...

  4. Centos7.0下MySQL的安装

    1.下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2.安装mysql-comm ...

  5. iOS 之地图坐标体系和转换

    一.坐标体系 首先我们要明白,开发者能接触到哪些坐标体系呢? 第一种分类: 1. GPS,WGS-84,原始坐标体系.一般用国际标准的GPS记录仪记录下来的坐标, 都是GPS的坐标.很可惜,在中国,任 ...

  6. db2 执行计划

    SQL 语句优化贯穿于数据库类应用程序的整个生命周期,包括前期程序开发,产品测试以及后期生产维护.针对于不同类型的 SQL 性能问题有不同的优化方法.索引对于改善数据库 SQL 查询操作性能至关重要, ...

  7. 阻止a链接跳转方法总结

    总结下a标签阻止默认行为的几种简单方法(1) <a href="javascript:void(0);" > 点我 </a> onclick方法负责执行js ...

  8. nginx default_server的作用

    用来处理没有成功匹配server_name的请求 https://www.oschina.net/question/12_3565 https://segmentfault.com/a/1190000 ...

  9. Fiddler 会话过滤功能

    我们访问任何网址都会被 Fiddler 捕获,但有时我们只想捕获某个地址,可以使用 Fiddler 的会话过滤,如下我们只过滤出百度的域名 如下,切换到 Filters --- 把 Use Filte ...

  10. POI导出复杂的excel;excel公共样式类;excel拼接定制类;数据科学计数法转为普通值

    一.excel公共样式类(包含数据科学计数法转为普通值) package com.thinkgem.jeesite.common.utils.excel; import org.apache.poi. ...