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. moving-files-from-one-linux-server-to-another-using-scp

    https://www.tecmint.com/scp-commands-examples/ https://haydenjames.io/linux-securely-copy-files-usin ...

  2. SQL Server 2016新特性:列存储索引新特性

    SQL Server 2016新特性:列存储索引新特性 行存储表可以有一个可更新的列存储索引,之前非聚集的列存储索引是只读的. 非聚集的列存储索引支持筛选条件. 在内存优化表中可以有一个列存储索引,可 ...

  3. Spark基本架构及原理

    Hadoop 和 Spark 的关系 Spark 运算比 Hadoop 的 MapReduce 框架快的原因是因为 Hadoop 在一次 MapReduce 运算之后,会将数据的运算结果从内存写入到磁 ...

  4. 通过灰度线性映射增强图像对比度实现PS中的色阶

    通过灰度线性映射增强图像对比度 Halcon中如何通过灰度线性映射增强图片对比度呢?不急,我先讲点其他的. 如果你用过Photoshop,那么想必对增强图像的对比度很熟悉.在Photoshop中,我们 ...

  5. 项目中phpexcel的基本用法

    前提:要下载PHPEXCEL库文件 如:phpexcel官方下载    ,本人使用下载 情形一:对于将数据写入EXCEL表中的用法 header("content-type:text/htm ...

  6. idea中git颜色不显示或者文件右键没有git按钮解决方法

    VCS--->Enable Version Control Integration,然后选择git就可以了

  7. sql 同步2个表中的一个字段数据

    update PMS.tenant_contract a inner join(select id,home_id from PMS.owner_contract) c on a.id = c.id ...

  8. Adding ASP.NET MVC5 Identity Authentication to an existing project

    Configuring Identity to your existing project is not hard thing. You must install some NuGet package ...

  9. oracle 聚合函数 LISTAGG ,将多行结果合并成一行

    LISTAGG( to_char(Item_Category_Name), ',') WITHIN GROUP(ORDER BY Item_Category_Name)  -- 将 Item_Cate ...

  10. An error occurred. Sorry, the page you are looking for is currently unavailable. Please try again later.

    刚装完 PHP.Nginx,准备跑下 phpMyAdmin 程序,结果报以下错误: An error occurred. Sorry, the page you are looking for is ...