集群部署:2台tarcker服务器,2台storage服务器。

192.168.201.86   ---------(trackerd+storage+nginx)

192.168.201.87   ---------(trackerd)

192.168.201.88   ---------(storage)

所有tracker机都要安装步骤一、二。

所有storage机都要安装步骤一、三、想要支持浏览器还要安装步骤四、五。

单机部署安装步骤一、二、三、四、五。

一、安装libfsatcomon、libevent

1.首先检查依赖环境gcc安装没有,如果没有安装,先安装

yum install gcc* make*

yum install perl  libevent      ------------装fastDFS的依赖工具

2.安装libfastcommon

# 切换目录

cd /usr/local       --------------------解压到此目录下或者移动(复制)到此目录下再进行解压。

# 解压(没有unzip命令的同学自行安装:yum –y install unzip*)

unzip libfastcommon-master.zip -d libfastcommon-master

# 进到解压后的文件目录下

cd libfastcommon-master

# 进行安装

./make.sh

./make.sh install

3.fastDFS需要安装libevent比较新的版本,将本机的比较低的版本卸载了。

ls -al /usr/lib | grep libevent

-------------------查看是否已安装,如果已安装且版本低于1.3,则先进行卸载。

rpm -qa libevent

libevent-1.4.13-1.el6.x86_64

rpm -e --nodeps libevent

安装一个最新稳定版

cd /usr/local

wget https://github.com/downloads/libevent/libevent/libevent-2.0.18-stable.tar.gz

tar zxvf libevent-2.0.18-stable.tar.gz

cd libevent-2.0.18-stable

./configure

make && make install

为libevent创建软链接到/lib库下,64位系统对应/lib64

ln -s /usr/local/lib/libevent* /lib/

ln -s /usr/local/lib/libevent* /lib64/

二、安装FastDFS

Cd /usr/local

wget http://fastdfs.googlecode.com/files/FastDFS_v3.06.tar.gz

tar zxvf FastDFS_v3.06.tar.gz

cd FastDFS

./make.sh

./make.sh install

如果安装成功,则在/etc/fdfs下会生成3个文件。

1.配置tracker节点

Mkdir –p /home/tao/fastdfs

cd /etc/fdfs

cp tracker.conf.sample  tracker.conf

#修改的文件内容如下(基础配置,不考虑性能调优情况下):

vi tracker.conf base_path=/home/tao/fastdfs

#设置 tracker 的数据文件和日志目录(需预先创建)

http.server_port=6666  (默认为8080,不建议修改,除非已经被其他应用占用,我这里更改了。)

cp client.conf.sample client.conf

cp storage.conf.sample storage.conf     -------------剩余两个配置文件也要复制一份。

启动 tracker

/usr/local/FastDFS/init.d/fdfs_trackerd start /etc/fdfs/tracker.conf        ------------如果显示没有这个目录,则在/usr/local/FastDFS/init.d下没有fdfs_trackerd这个启动文件,可用find / -name “fdfs_trackerd*”查找其路径,复制到路径下即可。

也可以直接做软连接:

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

Service fdfs_trackerd start   -----------------用命令也可以激活服务。

成功启动如下图:

用此命令查看端口是否被侦听

设置开机启动

Vi  /etc/rc.d/rc.local

/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf

Service fdfs trackerd start

三. 配置并启动 storage server节点

配置 storage.conf

vim /etc/fdfs/storage.conf

base_path=/home/tao/fastdfs

store_path0=/home/tao/fastdfs

tracker_server=192.168.201.86:22122

启动 storage

/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

Service fdfs_storaged start

检查服务端口是否开启,成功启动则如下图:

设置开机启动

vim /etc/rc.d/rc.local

/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

Service fdfs_storaged start

检查存储服务是否注册:命令:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

成功链接则如下图:ACTIVE(激活在线)

四 .配置client.conf文件

Cd /etc/fdfs/

Cp client.conf.sample client.conf

Vi client.conf

base_path=/home/tao/fastdfs

tracker_server=192.168.201.86:22122

http.tracker_server_port=8080

测试上传:

Mkdir test.txt

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /目标文件路径

发现报错:

此处报错是因为text.txt/是一个目录而不是文件,在其下touch一个test再次上传则成功,如下图:

如果上传错误,可能是防火墙没有放行端口。这里举例两种防火墙的添加端口。

vi /etc/sysconfig/iptables

添加:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122/23000/8080 -j ACCEPT

#重启防火墙

service iptables restart

firewall-cmd --zone=public --remove-port=22122/23000/8080/tcp –permanent  ------添加端口

firewall-cmd –reload      ----------重启防火墙。

启动nginx : /opt/nginx/sbin/nginx

(重启 Nginx 的命令为:/opt/nginx/sbin/nginx -s reload)

其他命令:

五 。此时可以上传但是不能浏览器访问和下载。需要安装支持服务的插件。

安装NGINX,使其支持HTTP协议访问。

需要重新编译libevent

解压:tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

进入vi config

修改:CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon"

# 将FastDFS-nginx-module/src下的mod_FastDFS.conf拷贝至/etc/fdfs/下

cp mod_fastdfs.conf /etc/fdfs/

# 修改mod_fastdfs.conf的内容

vi /etc/fdfs/mod_fastdfs.conf

base_path=/data/fastdfs-storage/logs tracker_server=192.168.201.86:22122 #tracker_server=192.168.201.88:22122(多个tracker配置多行) url_have_group_name=true

#url中包含group名称

store_path0=/data/fastdfs-storage

#指定文件存储路径

修改配置文件后进行保存,之后将http.conf 与 mime.types拷贝到/etc/fdfs下

# 切换盘符

cd /usr/local/FastDFS/conf/

# 拷贝文件

cp http.conf mime.types /etc/fdfs/

安装nginx:

Mkdir /var/temp/nginx/client     -----------创建虚拟存储路径

# 解压 tar -zxvf nginx-1.8.0.tar.gz # 切换目录 cd nginx-1.8.0 # 环境准备 yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel yum install gd-devel # 执行 ./configure \ --prefix=/data/nginx \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/temp/nginx/client \

--http-proxy-temp-path=/var/temp/nginx/proxy \

--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

--http-scgi-temp-path=/var/temp/nginx/scgi \

--add-module=/usr/local/fastdfs-nginx-module/src \

--with-http_image_filter_module

# 执行 make && make install

# 切换目录 cd /data/nginx/conf/

# 修改配置文件 vi nginx.conf

#添加location location /group1/M00/{ ngx_fastdfs_module; }

ln -s /home/tao/fastdfs/data /mnt/xfsd/fastdfs/storage/data/M00

--------------这样做的目的是将真实路径映射到访问路径上

当启动nginx报错:nginx: [emerg] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

只要在 /usr/local/nginx/下创建logs目录即可解决。

注意:实验中storage.conf里的http端口号要和nginx.conf以及client.conf的一致。

确认三个服务都起来,端口处于侦听状态。

浏览器访问之前上传的文件:

报400 Bad Request错误,如下图:

解决方法:vi /etc/fdfs/mod_fastdfs.conf

看仔细了,我把这个英文单词写错了,耽误了一天时间排错。改掉则访问成功。

报404 Not Found错误

解决方法:路径格式不对。/group1/M00/00/00 没有正确映射到真实存储路径/home/tao/fastdfs/data/00/00 上。

关于Linux单机、集群部署FastDFS分布式文件系统的步骤。的更多相关文章

  1. Redis基本概念、基本使用与单机集群部署

    1. Redis基础 1.1 Redis概述 Redis是一个开源.先进的key-value存储,并用于构建高性能.可扩展的应用程序的完美解决方案. Redis从它的许多竞争继承了三个主要特点:    ...

  2. centos7下部署FastDFS分布式文件系统

    前言 项目中用到文件服务器,有朋友推荐用FastDFS,所以就了解学习了一番,感觉确实颇为强大,在此再次感谢淘宝资深架构师余庆大神开源了如此优秀的轻量级分布式文件系统,本篇文章就记录一下FastDFS ...

  3. 手把手教你Linux服务器集群部署.net网站 - 让MVC网站运行起来

    一.Linux下面安装需要软件 我们这里需要安装的软件有: 1) Mono 3.2.8 : C#跨平台编译器,能使.Net运行与Linux下,目前.net 4.0可以完美运行在该平台下 2) ngin ...

  4. 手把手教你Linux服务器集群部署.net网站 - Linux系统安装和设置

    在开源软件已成趋势化的今天,微软这‘老古董’也开始向开源方向发力,这对我们.NET开发者是极大的喜讯.而在开源软件中, Linux就是其中一个优秀的代表,几乎各行业和计算机有关的都有它的身影,其中一点 ...

  5. Docker容器与容器云之Docker单机集群部署案例

    准备工作: CentOS 7安装docker: #yum -y install docker 1.获取节点所需镜像 --主机执行 #docker pull django #docker pull ha ...

  6. Presto集群部署

    前言: 随着大数据的普及,大部分企业的大数据查询与统计渐渐出现瓶颈.虽说存储方面有分布式的HDFS,HBSE,MongoDB等可以应对,但是面对千万级别(1x10^7)界别的数据量查询时,以上组件也不 ...

  7. 分布式FastDFS集群部署

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

  8. Dubbo+zookeeper构建高可用分布式集群(二)-集群部署

    在Dubbo+zookeeper构建高可用分布式集群(一)-单机部署中我们讲了如何单机部署.但没有将如何配置微服务.下面分别介绍单机与集群微服务如何配置注册中心. Zookeeper单机配置:方式一. ...

  9. 分布式监控工具Ganglia 介绍 与 集群部署.

    如果你目的很明确就是冲着标题来的,不爱看我唠叨,请直接进入第二个分割线之后的内容. 其实之前就是有做Swift监控平台的打算的,但是因为没什么硬性需求么,也不要紧的,就一直搁置了.最近实验室来了个大二 ...

随机推荐

  1. c#/netcore/mvc视图中调用控制器方法

    1: public class HomeController : Controller     {         public ActionResult Index()         {     ...

  2. C#-WinForm跨线程修改UI界面

    待解决的问题 在我做WinForm开发的过程中,经常会遇到耗时操作或阻塞操作.他们会引发软件的卡顿甚至假死,严重影响软件的使用. 因此,这类耗时或阻塞的操作一般都会使用异步的方式去执行,不影响主线程( ...

  3. Python爬虫学习==>第八章:Requests库详解

    学习目的: request库比urllib库使用更加简洁,且更方便. 正式步骤 Step1:什么是requests requests是用Python语言编写,基于urllib,采用Apache2 Li ...

  4. NativeContainer

    安全系统复制数据的过程的缺点是它还隔离了每个副本中作业的结果.要克服此限制,您需要将结果存储在一种名为NativeContainer的共享内存中. 什么是NativeContainer? A Nati ...

  5. spring 给容器中注册组件的几种方式

    1.@Bean 导入第三方的类或包的组件 2.包扫描+组件的标注注解(@ComponentScan: @Controller,@service,@Reponsitory,@Componet), 自己写 ...

  6. numpy的divide函数

    和直接用/一样,都是矩阵的对应元素相除. 如果用*,那么是矩阵的对应元素相乘. 如果要实现矩阵乘法,用numpy的dot函数.

  7. idea导入eclipse的web项目

    idea导入eclipse的web项目 一.导入自己的web项目      步骤:File->New->Project from Existing Source... 二.选择项目的所在位 ...

  8. Interval List Intersections

    Given two lists of closed intervals, each list of intervals is pairwise disjoint and in sorted order ...

  9. VNC 设置分辨率 --TigerVNC

    之前写过如何设置vnc https://www.cnblogs.com/jinanxiaolaohu/p/9110002.html 如果想设置vnc的分辨率的话 也很简单 如图示: vncserver ...

  10. redis缓存雪崩

    缓存雪崩 缓存雪崩,是指在某一个时间段,缓存集中过期失效. 产生雪崩的原因之一,比如在写本文的时候,马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中的放入了缓存,假设缓存一个小时.那么 ...