FastDFS的单点部署
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。然后启动服务。
相关文件下载:
借鉴:https://www.cnblogs.com/chiangchou/p/fastdfs.html#_label0_0
FastDFS的单点部署的更多相关文章
- FastDFS+Nginx(单点部署)事例
FastDFS是由淘宝的余庆先生所开发,是一个轻量级.高性能的开源分布式文件系统,用纯C语言开发,包括文件存储.文件同步.文件访问(上传.下载).存取负载均衡.在线扩容.相同内容只存储一份等功能,适合 ...
- FastDFS集群部署
之前介绍过关于FastDFS单机部署,详见博文:FastDFS+Nginx(单点部署)事例 下面来玩下FastDFS集群部署,实现高可用(HA) 服务器规划: 跟踪服务器1[主机](Tracker S ...
- FastDFS集群部署(转载 写的比较好)
FastDFS集群部署 之前介绍过关于FastDFS单机部署,详见博文:FastDFS+Nginx(单点部署)事例 下面来玩下FastDFS集群部署,实现高可用(HA) 服务器规划: 跟踪服务器1 ...
- 01 . 分布式存储之FastDFS简介及部署
分布式存储简介 现代的互联网已经进入大数据时代,每天都有数以万计的数据产生,这些数据的规模轻轻松松地可以达到几P的级别,传统的的单机存储早已捉襟见肘,根本无法满足大数据对存储系统的要求.这时,各种分布 ...
- FastDFS 分布式文件系统部署实战及基本使用
FastDFS 分布式文件系统部署实战及基本使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. FastDFS是一个开源的高性能分布式文件系统.它的主要功能包括:文件存储,文件同步 ...
- 分布式FastDFS集群部署
FastDFS FastDFS的作者余庆在其 GitHub 上是这样描述的:"FastDFS is an open source high performance distributed f ...
- 单节点FastDFS与Nginx部署
一.安装基本组件 1.安装编译需要的组件,必安装组件. yum install gcc-c++ 2.安装libevent函数库.pcre-devel zlib-devel必安装组件. yum ...
- Fastdfs集群部署以及基本操作
FastDFS引言 本地存储与分布式文件系统 本地存储的缺点: 是否有备份? 没有 成本角度? 贵 服务器 :用于计算 ---- cpu/内存 用于存储 ---- 硬盘大 存储瓶颈? 容量有限 ...
- 01.FastDFS的安装部署
1.FastDFS简介 (1)FastDFS的功能介绍 FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负 ...
随机推荐
- layer 关闭当前弹出层
关闭当前框的弹出层 layer.close(layer.index); 刷新父层 parent.location.reload(); // 父页面刷新 关闭iframe 弹出的全屏层 var inde ...
- 【iCore4 双核心板_ARM】例程三十五:HTTP_IAP_ARM实验——更新升级STM32
实验现象: 核心代码: int main(void) { led.initialize(); //LED³õʼ»¯ key.initialize(); if(ARM_KEY_STATE == KEY ...
- golang字符串拼接
四种拼接方案: 1,直接用 += 操作符, 直接将多个字符串拼接. 最直观的方法, 不过当数据量非常大时用这种拼接访求是非常低效的. 2,直接用 + 操作符,这个和+=其实一个意思了. 3,用字符串切 ...
- vscode打造最佳的markdown编辑器
参考:https://www.jianshu.com/p/18876655b452 在macos下也设置成功:
- python 字符编码判断 chardet评测
之前一直想找到一个模块,针对字符判断是什么字符集编码的库 网上有chardet的blog,发现自己的环境有这个库,于是就做了测试 >>> import chardet >> ...
- 【转】WPF Template模版之DataTemplate与ControlTemplate(一)
WPF系统不但支持传统的Winfrom编程的用户界面和用户体验设计,更支持使用专门的设计工具Blend进行专业设计,同时还推出了以模板为核心的新一代设计理念. 1. 模板的内涵 作为表现形式,每个控件 ...
- ROS常用命令汇总
ROS系统也是通过命令行操作,总结了下平时工作中使用的命令工具,以后使用多会陆续添加. 查看ROS_PACKAGE_PATH环境变量 $ echo $ROS_PACKAGE_PATH /home/sa ...
- 六、编写第一个应用【外部nodejs调用】
一. 参考地址:https://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html 根据前几节的配置 1.下载代码 git ...
- Unity编辑器中分割线拖拽的实现
GUI splitter control How can I make a GUI splitter control, similar to the splitter the console has? ...
- 关于vmware 11.1安装windows 7操作系统时报错 Unist specified don’t exist. SHSUCDX can’t install
笔者今天在vmware 11.1 虚拟机下使用光驱安装windows 7 32位操作系统时,报错: Unist specified don’t exist. SHSUCDX can’t install ...