FastDFS安装步骤
FastDFS
是用c
语言编写的一款开源的分布式文件系统,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS
很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
一、FastDFS架构
FastDFS
架构包括Tracker server
和Storage server
。客户端请求Tracker server
进行文件上传、下载,通过Tracker server
调度最终由Storage server
完成文件上传和下载。
1.Tracker Server
Tracker server
作用是负载均衡和调度,通过Tracker server
在文件上传时可以根据一些策略找到Storage server
提供文件上传服务,可以将tracker
称为追踪服务器或调度服务器。
2.Storage server
Storage server
作用是文件存储,客户端上传的文件最终存储在Storage
服务器上,Storage server
没有实现自己的文件系统而是利用操作系统的文件系统来管理文件。可以将storage
称为存储服务器。
二、FastDFS安装
FastDFS的安装比较麻烦,需要配置许多的参数,所以要有耐心。本次配置是在Ubuntu
系统版本为16.04.3 LTS
下进行的,并且是干净的版本,比如gcc
、ssh
等软件包都没有安装。
下面开始进行环境配置:
1.软件包
下面是安装FastDFS
的安装包,也可以下载到:FastDFS,密码为:ideg
。
软件包 | 版本 |
---|---|
FastDFS | v5.05 |
libfastcommon | v1.0.7 |
fastdfs-nginx-module | v1.16 |
nginx | v1.12.1 |
2.安装libfastcommon
在编译libfastcommon
之前,要先安装gcc
的编译器:
sudo apt-get install build-essential
如果提示某些包安装不上,请先更新apt
:
sudo apt-get update
之后再安装gcc
,安装成功后就可以编译安装了:
./make.sh && sudo ./make.sh install
最后,把生成的libfastcommon
库拷贝到/usr/lib
目录下
sudo cp /usr/lib64/* /usr/lib/
3.编译FastDFS
解压FastDFS_v5.05.tar.gz
,然后编译安装FastDFS
:
tar zxf FastDFS_v5.05.tar.gz
./make.sh
sudo ./make.sh install
安装成功后将目录conf
内的文件拷贝到/etc/fdfs
目录下:
sudo cp conf/* /etc/fdfs/
4.安装tracker
进入/etc/fdfs
目录,修改tracker.conf
文件。如果不存在,就拷贝tracker.conf.sample
文件为tracker.conf
,然后再修改:
base_path=/home/yuqing/fastdfs >>> base_path=/home/kelvin/data/fastdfs
http.server_port=8080 >>> http.server_port=80
其中,/home/kelvin/data/fastdfs
目录如果不存在,就创建一个。
之后,就启动tracker
,并查看是启动成功(出现如下提示,表示启动成功):
$ fdfs_trackerd /etc/fdfs/tracker.conf start
$ netstat -unltp | grep tracker
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 7281/fdfs_trackerd
5.安装storage
修改storage.conf
文件。如果不存在,就拷贝storage.conf.sample
文件为storage.conf
,然后再修改:
base_path=/home/yuqing/fastdfs >>> base_path=/home/kelvin/data/fastdfs/storage
store_path0=/home/yuqing/fastdfs >>> store_path0=/home/kelvin/data/fastdfs/storage
tracker_server=192.168.209.121:22122 >>> tracker_server=192.168.2.231:22122
其中,如果/home/kelvin/data/fastdfs/storage
不存在,就创建该目录
然后,就启动storage
,并查看是否成功(出现如下提示,表示启动成功):
$ fdfs_storaged /etc/fdfs/storage.conf start
$ netstat -unltp | grep storage
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 7348/fdfs_storaged
最后,查看tracker
和storage
是不是在通信:
$ fdfs_monitor /etc/fdfs/storage.conf
...
current trunk file id = 0
Storage 1:
id = 192.168.2.231
ip_addr = 192.168.2.231 ACTIVE
...
如上提示,出现ACTIVE
,表示二者均正常启动,至此就可以进行上传文件测试了。
6.安装Nginx
首先解压fastdfs-nginx-module_v1.16.tar.gz
,然后把解压后的文件目录整个拷贝到/usr/local/src
目录下。
然后配置nginx
,加入fastdfs-nginx-module
模块:
$ sudo ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
如果出现如下错误,
error: the HTTP rewrite module requires the PCRE library
请安装libpcre3
和ssh
的库
$ sudo apt-get install libpcre3 libpcre3-dev
$ sudo apt-get install openssl libssl-dev
之后再执行configure
配置,完成后进行安装:
sudo make
如果出现如下错误:
root/fastdfs-nginx-module/src//common.c:21:25: fatal error: fdfs_define.h: No such file or directory
#include "fdfs_define.h"
则需要再添加如下配置:
1.把/usr/lib64/libfdfsclient.so
库拷贝到/usr/lib/
目录下:
$ sudo cp /usr/lib64/libfdfsclient.so /usr/lib/
2.配置/usr/local/src/fastdfs-nginx-module/src/
目录下的config
文件,把CORE_INCS
和CORE_LIBS
的所有路径都修改为/usr/include
和/usr/lib
:
$ sudo vi /usr/local/src/fastdfs-nginx-module/src/config
...
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
...
之后就可以执行编译和安装了:
$ sudo make && sudo make install
完成之后,可以查看fastdfs-nginx-module
是否配置成功(下面提示表示配置成功):
$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.1
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
configure arguments: --add-module=/usr/local/src/fastdfs-nginx-module/src
7.整合fastdfs-nginx-module 和 Nginx
首先到/usr/local/src/fastdfs-nginx-module-master/src/
目录下,拷贝mod_fastdfs.conf
文件到/etc/fdfs
目录下,然后进行如下配置:
base_path=/home/kelvin/data/fastdfs
tracker_server=192.168.2.231:22122
url_have_group_name = true
store_path0=/home/kelvin/data/fastdfs/storage
然后配置Nginx
,添加如下内容:
server {
listen 80;
server_name localhost;
...
# 配置fastdfs的访问路径
location /group1/M00 {
ngx_fastdfs_module;
}
...
}
之后启动nginx
:
$ sudo /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=23238
上传测试
在进行测试之前,我们还需要先配置一下client.conf
文件,该文件在/etc/fdfs
目录下,配置如下:
$ sudo vi /etc/fdfs/cli
...
base_path=/home/kelvin/data/fastdfs
tracker_server=192.168.2.231:22122
...
然后,创建一个test.txt
文件,随便输入一些内容,再进行上传:
$ echo HelloWorld > ~/test.txt
$ fdfs_test /etc/fdfs/client.conf upload ~/test.txt
...
[2017-09-23 20:12:00] DEBUG - base_path=/home/kelvin/data/fastdfs, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
tracker_query_storage_store_list_without_group:
server 1. group_name=, ip_addr=192.168.2.231, port=23000
group_name=group1, ip_addr=192.168.2.231, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgC51nHIoCACtpSAAAAC5KLpvs082.txt
source ip address: 192.168.2.231
file timestamp=2017-09-23 20:12:00
file size=11
file crc32=2458625787
example file url: http://192.168.2.231/group1/M00/00/00/wKgC51nHIoCACtpSAAAAC5KLpvs082.txt
...
最后,在浏览器里输入http://192.168.2.231/group1/M00/00/00/wKgC51nHIoCACtpSAAAAC5KLpvs082.txt
,即可访问到test.txt的文件内容:
以上就是Fastdfs
的安装过程,如有错误,欢迎指出,共同进步。(文中部分图片来自互联网,版权归原作者所有)
参考资料
FastDFS安装步骤的更多相关文章
- 分布式文件系统 fastDFS 安装步骤
安装 fastDFS 很简单. 先安装 libevent, 安装成功后,安装fastDFS. ./make.sh ./make.sh install 我使用一台tracker服务器 192.168. ...
- FastDFS 安装步骤
nginx01 121nginx02 122 tracker01 131tracker02 132 storage01 141storage0 ...
- FastDFS图片服务器单机安装步骤
前面已经讲 一张图秒懂微服务的网络架构,通过此文章可以了解FastDFS组件中单机安装流程. 单机版架构图 以下为单机FastDFS安装步骤 一.环境准备 CentOS 7.X libfastcomm ...
- FastDFS图片服务器单机安装步骤(修订版)
前面已经讲 一张图秒懂微服务的网络架构,通过此文章可以了解FastDFS组件中单机安装流程. 单机版架构图 以下为单机FastDFS安装步骤 一.环境准备 CentOS 7.X libfastcomm ...
- [转帖]FastDFS图片服务器单机安装步骤
FastDFS图片服务器单机安装步骤 https://www.cnblogs.com/yuesf/p/11847103.html 前面已经讲 一张图秒懂微服务的网络架构,通过此文章可以了解FastDF ...
- fastdfs 安装配置
介绍文档 1.安装 # wget # tar xf download # cd FastDFS/ # ./make.sh 运行文件 有报错信息 compilation terminated. ...
- FastDFS安装配置手册
文件服务器分布式系统安装手册 本文档详细的介绍了FastDFS的最小集群安装过程.集群环境如下: tracker:20.2.64.133 .用于调度工作,在访问上起负载均衡的作用. group1: s ...
- FastDFS安装全过程记录(V5.05)
FastDFS安装全过程记录 1.安装准备 HA虚拟IP:192.168.1.208 HA软件:Keepalived 操作系统:CentOS 7 用户:root 数据目录:/data/fastdfs ...
- FastDFS安装、配置、部署(一)-安装和部署 (转)
FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站 Fast ...
随机推荐
- MySQL (九)
1 代码执行结构 代码执行结构有三种:顺序结构.分支结构和循环结构. 1.1 分支结构 分支结构:实现准备多个代码块,按照条件选择性执行某段代码. 在MySQL中只有if分支. 基本语法 if 条件判 ...
- HTML5无插件多媒体Media——音频audio与视频video
文件日志地址 http://blog.csdn.net/q1056843325/article/details/60336226 音频与视频现在已经变得越来越流行 各个网站为了保证跨浏览器的兼容性 ...
- Spring(一)--作用、IOC容器细节、搭配环境、Spring实验
1.Spring作用: 1.生态体系庞大,全能型选手![springmvc是其一个子模块,jdbcTemplate能直接操作数据库!] 2.将其他组件粘合在一起 比如将S ...
- hdu1695 GCD(莫比乌斯入门题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题意: 给出n.m.k ,求出1<=x<=n, 1<=y<=m 且gcd ...
- shell之 printf 输出语句
总结: (1)printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度.左右对齐方式等.默认printf不会像 echo 自动添加换行符,我们可以手 ...
- python的计数引用分析(一)
python的垃圾回收采用的是引用计数机制为主和分代回收机制为辅的结合机制,当对象的引用计数变为0时,对象将被销毁,除了解释器默认创建的对象外.(默认对象的引用计数永远不会变成0) 所有的计数引用+1 ...
- LeetCode315—Count of Smaller Numbers After Self—Java版归并算法
这是我在研究leetcode的solution第一个解决算法时,自己做出的理解,并且为了大家能看懂,做出了详细的注释. 此算法算是剑指Offer36的升级版,都使用的归并算法,但是此处的算法,难度更高 ...
- [2017-07-18]ELK安装笔记
ELK ElasticSearch LogStash Kibana Server:CentOS 7 采用RPM导入官方源方式进行安装 rpm --import https://artifacts.el ...
- [2014-11-11]使用Owin中间件搭建OAuth2.0认证授权服务器
前言 这里主要总结下本人最近半个月关于搭建OAuth2.0服务器工作的经验.至于为何需要OAuth2.0.为何是Owin.什么是Owin等问题,不再赘述.我假定读者是使用Asp.Net,并需要搭建OA ...
- 对Appium的认识 get
介绍 Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持iOS.Android及FirefoxOS平台测试.Appium使用WebDriver的json w ...