GVKun编程网logo

CentOS Docker 环境中安装及配置 FastDFS 分布式文件系统(docker安装fastdfs集群)

23

对于想了解CentOSDocker环境中安装及配置FastDFS分布式文件系统的读者,本文将提供新的信息,我们将详细介绍docker安装fastdfs集群,并且为您提供关于CentOS7安装配置分布式

对于想了解CentOS Docker 环境中安装及配置 FastDFS 分布式文件系统的读者,本文将提供新的信息,我们将详细介绍docker安装fastdfs集群,并且为您提供关于CentOS 7 安装配置分布式文件系统 FastDFS 5.11、CentOS 7.2搭建FastDFS 分布式文件系统,实现高可用集群、centos 分布式文件系统-FastDFS_v5.05安装、centos610 安装分布式文件系统FastDFS的有价值信息。

本文目录一览:

CentOS Docker 环境中安装及配置 FastDFS 分布式文件系统(docker安装fastdfs集群)

CentOS Docker 环境中安装及配置 FastDFS 分布式文件系统(docker安装fastdfs集群)

拉取镜像

docker pull morunchang/fastdfs

运行tracker

docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh

运行storage,注意把xxx.xxx.xxx.xxx换成自己的服务器IP

docker run -d --name storage --net=host -e TRACKER_IP=<your tracker server address>:22122 -v /var/fdfs/fast_data/data:/data/fast_data/data -e GROUP_NAME=<group name> morunchang/fastdfs sh storage.sh

例如:
docker run -d --name storage --net=host -e TRACKER_IP=192.168.1.135:22122 -v /var/fdfs/fast_data/data:/data/fast_data/data -e GROUP_NAME=GROUP00 morunchang/fastdfs sh storage.sh
/* 1.使用的网络模式是–net=host, <your tracker server address> 替换为你的Ip即可,这个IP是DOCKER容器内的IP , 不是本机IP
使用 docker exec -it 容器名称/bin/bash 进入对应的容器, 用ip addr查看 2.<group name> 是组名,即storage的组 3.如果想要增加新的storage服务器,再次运行该命令,注意更换 新组名
4.-v /var/fdfs/fast_data/data:/data/fast_data/data 表示将宿主机的/var/fdfs/fast_data/data目录挂在到docker的/data/fast_data/data目录 该目录为FastDFS在docker中的默认上传路径.
  可在 /etc/fdfs/storage.conf 文件中的base_path字段中修改默认上传路径.
  5. docker ps 查看容器信息 [root@iZh3cshm0xz7wjZ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ccdf6bbeab48 morunchang/fastdfs "sh storage.sh" 5 seconds ago Up 4 seconds storage a7253c93bce1 morunchang/fastdfs "sh tracker.sh" About a minute ago Up About a minute tracker

修改nginx的配置,不拦截上传内容

//1.进入容器内部
docker exec -it storage  /bin/bash

     // storage 是 docker ps 中的NAMES
     // exit 退出

root@iZh3cshm0xz7wjZ:/# cd data
root@iZh3cshm0xz7wjZ:/data# ls
fast_data  fastdfs  fastdfs-nginx-module  libfastcommon  nginx  nginx-1.9.11.tar.gz

//2.修改nginx配置文件
root@iZh3cshm0xz7wjZ:/# vi /data/nginx/conf/nginx.conf

//3. 添加修改内容
location /group1/M00 {
   proxy_next_upstream http_502 http_504 error timeout invalid_header;
     proxy_cache http-cache;
     proxy_cache_valid  200 304 12h;
     proxy_cache_key $uri$is_args$args;
     proxy_pass http://fdfs_group1;
     expires 30d;
 }

//4.退出
root@iZh3cshm0xz7wjZ:/data/nginx/conf# exit
exit

//5. 重启storage服务
[root@iZh3cshm0xz7wjZ ~]# docker restart storage
storage

 

CentOS 7 安装配置分布式文件系统 FastDFS 5.11

CentOS 7 安装配置分布式文件系统 FastDFS 5.11

CentOS 7 安装配置分布式文件系统 FastDFS 5.11

前言

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

简介

首先简单了解一下基础概念,FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。FastDFS的系统结构图如下:

 

如上图,FastDFS的两个核心概念分别是:

  1. Tracker(跟踪器)
  2. Storage(存储节点)

Tracker主要做调度工作,相当于mvc中的controller的角色,在访问上起负载均衡的作用。跟踪器和存储节点都可以由一台或多台服务器构成,跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务,其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。Tracker负责管理所有的Storagegroup,每个storage在启动后会连接Tracker,告知自己所属的group等信息,并保持周期性的心跳,tracker根据storage的心跳信息,建立group==>[storage server list]的映射表,Tracker需要管理的元信息很少,会全部存储在内存中;另外tracker上的元信息都是由storage汇报的信息生成的,本身不需要持久化任何数据,这样使得tracker非常容易扩展,直接增加tracker机器即可扩展为tracker cluster来服务,cluster里每个tracker之间是完全对等的,所有的tracker都接受stroage的心跳信息,生成元数据信息来提供读写服务。

Storage采用了分卷[Volume](或分组[group])的组织方式,存储系统由一个或多个组组成,组与组之间的文件是相互独立的,所有组的文件容量累加就是整个存储系统中的文件容量。一个卷[Volume](组[group])可以由一台或多台存储服务器组成,一个组中的存储服务器中的文件都是相同的,组中的多台存储服务器起到了冗余备份和负载均衡的作用,数据互为备份,存储空间以group内容量最小的storage为准,所以建议group内的多个storage尽量配置相同,以免造成存储空间的浪费。更多原理性的内容可以参考这篇文章,介绍的很详细:分布式文件系统FastDFS设计原理 
接下来就具体看一下FastDFS的整个下载安装过程~

下载

目前作者最后一次releases的时间的170603号,对应的最新版本是5.0.11,直接在余大的GitHub上下载就可以了: 
https://github.com/happyfish100/fastdfs/releases

如上图,由于FastDFS是纯C语言实现,只支持Linux、FreeBSD等UNIX系统,所以我们直接下载tar.gz的压缩包,同时FastDFS 5.11同以前版本相比将公共的一些函数等单独封装成了libfastcommon包,所以在安装FastDFS之前我们还必须安装libfastcommon,在余大的GitHub首页可以看到:

下载完成后将下面这两个文件上传至CentOS服务器,然后就可以开始解压安装了: 

安装

libfastcommon

首先第一步是安装libfastcommon,我这里将libfastcommon上传到的/usr/local目录下,直接解压:

unzip libfastcommon-master.zip

解压成功后进入目录看一下压缩包的文件: 

如果没有装解压工具unzip可以通过以下yum命令进行安装后再解压:

yum -y install unzip zip

 

解压完成后就可以进行编译安装了,分别执行./make.sh./make.sh install,由于是新安装的系统有可能会提示找不到gcc命令:

如上图,所以我们先要安装gcc编译器:

yum -y install gcc-c++

看到如下信息说明gcc已经安装成功: 

此时再次执行./make.sh命令进行编译,没有error信息的话就说明编译成功了,最后再执行./make.sh install进行安装,看到类似如下提示信息就说明libfastcommon已安装成功(画风突变,黑底白字看的眼睛累T_T,所以换成白底黑字了):

至此libfastcommon就已经安装成功了,但注意一下上图中红色框标注的内容,libfastcommon.so 默认安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以此处需要重新设置软链接(类似于Windows的快捷方式):

 

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

设置完毕后就可以开始安装fastdfs了。

FastDFS

第一步依然是解压:

tar -zxvf fastdfs-5.11.tar.gz

解压完成后进入目录fastdfs-5.11,依次执行./make.sh./make.sh install

./make.sh

./make.sh install

没有报错就说明安装成功了,在log中我们可以发现安装路径: 

没错,正是安装到了/etc/fdfs中,我们看一下该目录下的文件: 

如上图,安装成功后就会生成如上的3.sample文件(示例配置文件),我们再分别拷贝出3个后面用的正式的配置文件:

cp client.conf.sample client.conf

cp storage.conf.sample storage.conf

cp tracker.conf.sample tracker.conf

之后再查看一下/etc/fdfs的文件目录: 

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

Tracker

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

mkdir /opt/fastdfs_tracker

接下来就要重新编辑上一步准备好的/etc/fdfs目录下的tracker.conf配置文件,打开文件后依次做以下修改:

  1. disabled=false #启用配置文件(默认启用)
  2. port=22122 #设置tracker的端口号,通常采用22122这个默认端口
  3. base_path=/opt/fastdfs_tracker #设置tracker的数据文件和日志目录
  4. 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中就可以看到启动后新生成的datalogs目录,tracker服务的端口也应当被正常监听,最后再通过netstat命令查看一下端口监听情况:

netstat -unltp|grep fdfs

可以看到tracker服务运行的22122端口正常被监听: 

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

service fdfs_trackerd start

Tracker至此就配置好了,接下来就可以配置FastDFS的另一核心——Storage

Storage

同理,步骤基本与配置Tracker一致,首先是创建Storage服务器的文件目录,需要注意的是同Tracker相比我多建了一个目录,因为Storage还需要一个文件存储路径,用于存放接收的文件:

mkdir /opt/fastdfs_storage

mkdir /opt/fastdfs_storage_data

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

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

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

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

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

service fdfs_storaged start

命令执行后可以看到以下提示:

同理,如果启动成功,/opt/fastdfs_storage中就可以看到启动后新生成的datalogs目录,端口23000也应被正常监听,还有一点就是文件存储路径下会生成多级存储目录,那么接下来看看是否启动成功了: 

如上图,貌似没成功啊,因为启动storage后文件都没生成,为了确认我们看一下storage的端口情况: 

果然是没启动成功!端口目前还是只监听了一个,storage23000端口并未被监听,那么我们只能去日志文件中找原因了,进入/opt/fastdfs_storage/logs目录下并打开storaged.log文件: 

如上图,可以看到确实有一个error,关键信息是:

ERROR - file: storage_func.c, line: 896, mkdir “/etc/fastdfs_storage_data/data” fail, errno: 2, error info: No such file or directory

没有文件或目录!再回头看一下/etc/fdfs目录下的storage.conf的配置:

果不其然配错了,我们指定成了/etc/fastdfs_storage_data目录,而实际上我们创建的位置是/opt/fastdfs_storage_data,粗心大意,老眼昏花!修改路径后再次重启storage服务,然后再看看data目录和实际存储文件的/opt/fastdfs_storage_data 

如上图,可以看到/opt/fastdfs_storage/data目录下生成好的pid文件和dat文件,那么再看一下实际文件存储路径下是否有创建好的多级目录呢: 

如上图,没有任何问题,data下有2561级目录,每级目录下又有2562级子目录总共65536个文件,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中。那么最后我们再看一下storage服务的端口监听情况: 

如上图,可以看到此时已经正常监听tracker22122端口和storage23000端口,至此storage服务器就已经配置完成,确定了storage服务器启动成功后,还有一项工作就是看看storage服务器是否已经登记到 tracker服务器(也可以理解为trackerstorage是否整合成功),运行以下命令:

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

[root@localhost /]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf 
[2016-09-23 12:59:26] DEBUG - base_path=/opt/fastdfs_storage, 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

server_count=1, server_index=0

tracker server is 192.168.111.11:22122

group count: 1

Group 1: 
group name = group1 
disk total space = 6818 MB 
disk free space = 2169 MB 
trunk free space = 0 MB 
storage server count = 1 
active server count = 1 
storage server port = 23000 
storage HTTP port = 8888 
store path count = 1 
subdir count per path = 256 
current write server index = 0 
current trunk file id = 0

Storage 1: 
id = 192.168.111.11 
ip_addr = 192.168.111.11 ACTIVE 
http domain = 
version = 5.05 
join time = 2016-09-23 11:15:54 
up time = 2016-09-23 12:33:26 
total storage = 6818 MB 
free storage = 2169 MB 
upload priority = 10 
store_path_count = 1 
subdir_count_per_path = 256 
storage_port = 23000 
storage_http_port = 8888 
current_write_path = 0 
source storage id = 
if_trunk_server = 0 
connection.alloc_count = 256 
connection.current_count = 0 
connection.max_count = 0 
total_upload_count = 0 
success_upload_count = 0 
total_append_count = 0 
success_append_count = 0 
total_modify_count = 0 
success_modify_count = 0 
total_truncate_count = 0 
success_truncate_count = 0 
total_set_meta_count = 0 
success_set_meta_count = 0 
total_delete_count = 0 
success_delete_count = 0 
total_download_count = 0 
success_download_count = 0 
total_get_meta_count = 0 
success_get_meta_count = 0 
total_create_link_count = 0 
success_create_link_count = 0 
total_delete_link_count = 0 
success_delete_link_count = 0 
total_upload_bytes = 0 
success_upload_bytes = 0 
total_append_bytes = 0 
success_append_bytes = 0 
total_modify_bytes = 0 
success_modify_bytes = 0 
stotal_download_bytes = 0 
success_download_bytes = 0 
total_sync_in_bytes = 0 
success_sync_in_bytes = 0 
total_sync_out_bytes = 0 
success_sync_out_bytes = 0 
total_file_open_count = 0 
success_file_open_count = 0 
total_file_read_count = 0 
success_file_read_count = 0 
total_file_write_count = 0 
success_file_write_count = 0 
last_heart_beat_time = 2016-09-23 12:58:59 
last_source_update = 1970-01-01 08:00:00 
last_sync_update = 1970-01-01 08:00:00 
last_synced_timestamp = 1970-01-01 08:00:00

如上所示,看到192.168.111.11 ACTIVE 字样即可说明storage服务器已经成功登记到了tracker服务器,同理别忘了添加开机启动,打开/etc/rc.d/rc.local并将如下配置追加到文件中:

service fdfs_storage start

至此我们就已经完成了fastdfs的全部配置,此时也就可以用客户端工具进行文件上传下载的测试了。

初步测试

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

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

配置完成后就可以模拟文件上传了,先给/opt目录下放一张图片(暴雪爸爸的LOGO): 

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

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /opt/BLIZZARD.jpg

运行后可以发现给我们返回了一个路径: 

这就表示我们的文件已经上传成功了,当文件存储到某个子目录后,即认为该文件存储成功,接下来会为该文件生成一个文件名,文件名由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成,如下图: 

同时在之前配置的storage服务器的实际文件存储路径中也可以根据返回的路径找到实际文件: 

接下来尝试用浏览器发送HTTP请求访问一下文件: 

如上图,4.0.5版本开始移除了自带的HTTP支持(因为之前自带的HTTP服务较为简单,无法提供负载均衡等高性能服务),所以余大提供了nginx上使用FastDFS的模块fastdfs-nginx-module,下载地址如下:https://github.com/happyfish100/fastdfs-nginx-module,这样做最大的好处就是提供了HTTP服务并且解决了groupstorage服务器的同步延迟问题,接下来就具体记录一下fastdfs-nginx-module的安装配置过程。

fastdfs-nginx-module

在余大的GitHub上下载好fastdfs-nginx-module上传到我们的CentOS中就可以开始安装了,在安装nginx之前需要先安装一些模块依赖的lib库,我在以前写的文章有做详细介绍(Linux CentOS 7 & TengineNginx)安装与配置),直接贴出安装代码:

yum -y install pcre pcre-devel 

yum -y install zlib zlib-devel 

yum -y install openssl openssl-devel

依次装好这些依赖之后就可以开始安装nginx了。

storage nginx

首先是为storage服务器安装nginx,首先将nginxfastdfs-nginx-module的安装包上传至CentOS 

首先分别进行解压:

tar -zxvf nginx-1.8.1.tar.gz

unzip fastdfs-nginx-module-master.zip

解压成功后就可以编译安装nginx了,进入nginx目录并输入以下命令进行配置:

./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-master/src

配置成功后会看到如下信息: 

紧接着就可以进行编译安装了,依次执行以下命令:

make

make install

安装完成后,我们在我们指定的目录/usr/local/nginx中就可以看到nginx的安装目录了: 

接下来要修改一下nginx的配置文件,进入conf目录并打开nginx.conf文件加入以下配置:

listen       9999;

location ~/group1/M00 {

      root /opt/fastdfs_storage_data/data;

      ngx_fastdfs_module;

}

(注意,加入的顺序,放到server里面的最后面)

 

然后进入FastDFS的安装目录/usr/local/fastdfs-5.11目录下的conf目录,将http.confmime.types拷贝到/etc/fdfs目录下:

cp -r /usr/local/fastdfs-5.11/conf/http.conf /etc/fdfs/

cp -r /usr/local/fastdfs-5.11/conf/mime.types /etc/fdfs/

接下来还需要把fastdfs-nginx-module安装目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录下:

cp -r /usr/local/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

看一下/etc/fdfs目录下当前所有的配置文件: 

没什么问题,接下来就需要编辑刚拷贝的这个mod_fastdfs.conf文件了,打开mod_fastdfs.conf并按顺序依次编译以下内容:

  1. base_path=/opt/fastdfs_storage #保存日志目录
  2. tracker_server=192.168.111.11:22122 #tracker服务器的IP地址以及端口号
  3. storage_server_port=23000 #storage服务器的端口号
  4. url_have_group_name = true #文件 url 中是否有 group 名
  5. store_path0=/opt/fastdfs_storage_data # 存储路径
  6. group_count = 3 #设置组的个数,事实上这次只使用了group1

设置了group_count = 3,接下来就需要在文件尾部追加这3group setting

 

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/opt/fastdfs_storage_data

[group2]

group_name=group2

storage_server_port=23000

store_path_count=1

store_path0=/opt/fastdfs_storage_data

[group3]

group_name=group3

storage_server_port=23000

store_path_count=1

store_path0=/opt/fastdfs_storage_data

接下来还需要建立 M00 至存储目录的符号连接:

ln  -s  /opt/fastdfs_storage_data/data  /opt/fastdfs_storage_data/data/M00

最后启动nginx

/usr/local/nginx/sbin/nginx

显示如下信息说明nginx已启动成功:

通过浏览器也可以看到nginx的主页: 

storage服务器的nginx就已经安装完毕,接下来看一下tracker服务器的nginx安装。

tracker nginx

同理,再装一个nginx,目录命名为nginx2,安装路径依旧放在/usr/local下,由于和之前一样,此处就不再做详细解释:

mkdir nginx2

cd nginx-1.8.1/

./configure --prefix=/usr/local/nginx2 --add-module=/usr/local/fastdfs-nginx-module-master/src

make

make install

接下来依然是修改nginx2的配置文件,进入conf目录并打开nginx.conf文件加入以下配置,storagenginx无需修改listen端口,即默认的80端口,并将upstream指向trackernginx地址:

upstream fdfs_group1 {

     server 127.0.0.1:9999;

}

location /group1/M00 {

     proxy_pass http://fdfs_group1;

}

(注意添加的顺序,upstream…添加到http里面 server的外面;location…添加到server的最后面)

接下来启动nginx2

/usr/local/nginx2/sbin/nginx

此时访问nginx2的主页,由于没有修改端口,直接访问ip地址即可: 

最后一步就是需要修改/etc/fdfs目录下的client.conf文件,打开该文件并加入以下配置:

base_path=/opt/fastdfs_storage  #日志存放路径

tracker_server=192.168.111.11:22122  #tracker 服务器 IP 地址和端口号

http.tracker_server_port=6666  # tracker 服务器的 http 端口号,必须和tracker的设置对应起来

至此关于fastdfs就已经全部配置完毕了,再一次进行测试看看是否能正常上传文件并通过http访问文件。

HTTP测试

再给/opt目录下上传一张暴雪爸爸的LOGO图:

通过客户端命令测试上传: 

如上图,依旧上传成功,接下来的关键就是通过HTTP测试文件访问,打开浏览器输入ip地址+文件名看看是否能正常访问该图片: 

 

一切正常~ 至此关于FastDFSCentOS 7下的部署测试就已经全部完成了。

总结

本篇文章记录了开源分布式文件系统FastDFSLinux CentOS 7中安装部署以及测试的全过程,下一篇文章将会继续介绍通过Java客户端以及SpringMVC中结合FastDFS实现文件上传下载,The End

 

CentOS 7安装配置分布式文件系统FastDFS 5.0.5  https://www.linuxidc.com/Linux/2016-09/135537.htm

 

广而告之:【全民云计算】云服务器今日限时秒杀,新用户专享1折起

CentOS 7.2搭建FastDFS 分布式文件系统,实现高可用集群

CentOS 7.2搭建FastDFS 分布式文件系统,实现高可用集群

http://bbs.dongnaoedu.com/?thread-25.htm

centos 分布式文件系统-FastDFS_v5.05安装

centos 分布式文件系统-FastDFS_v5.05安装

注:(引用)首先看一下FastDFS架构示意图如下:

注:(引用)技术相关术语:

Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。在内存中记录集群中group和storage server的状态信息,是连接Client和    Storage server的枢纽。 因为相关信息全部在内存中,Tracker server的性能非常高,一个较大的集群(比如上百个group)中有3台就足够了。  

Storage Server:存储服务器,文件和文件属性(meta data)都保存到存储服务器上。

下面我们就开始FastDFS的安装了:

首先 tracker 与 storage 的安装基本相同的,只是配置的文件有些差别。

tracker 安装于  10.20.20.49 

storage 安装于 10.20.20.14(可以安装多个storage,为了方便说明,只列举一个,其他的storage安装步骤相同(storage里配置了tracker就可以关联起来))

tracker 与storage 可以安装于同一台机器上,为了方便扩展建议安装在不同的机器上

先去官网下载相关包

1)FastDFS:    https://sourceforge.net/projects/fastdfs/

2)ibfastcommon:  https://sourceforge.net/projects/libfastcommon/(FastDFS 依赖工具包)

3)fastdfs-nginx-module :https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/(与nginx 集成用到)

4)ngx_cache_purge-2.3.tar(nginx的缓存用到)

5)nginx:http://nginx.org/en/download.html

安装tracker:

1.把文件拷贝到 /usr/local ,解压

     tar -zcxf  libfastcommon

     tar -zxvf FastDFS_v5.05.tar.gz

2.切换到 libfastcommon 目录

按照这个组件需要先安装它的依赖:

    cd libfastcommon    

    yum install gcc 

    yum install gcc-c++

    yum install gcc perl

    开始安装:
    ./make.sh
    ./make.sh install

3.安装FastDFS

    cd FastDFS
    ./make.sh
    ./make.sh install

4.安装后会在/etc/fdfs/ 目录生成fdfs的原始文件,切换到该目录下,复制以下两个文件:

    cd /etc/fdfs
    cp client.conf.sample client.conf
    cp tracker.conf.sample tracker.conf

5.修改拷贝后的文件,先创建tracker的日志文件目录,修改配置

    mkdir -p /opt/fdfs/tracker

    vim   tracker.conf

    需要修改的内容:     base_path=/opt/fdfs/tracker
                                    tracker_server=10.20.20.49:22122(tracker 的ip)

    (更多需求可以参照网上其他配置项)

6. 拷贝fdfs命令到指定目录
    cp /usr/bin/fdfs_trackerd /usr/local/bin
    cp /usr/bin/fdfs_monitor /usr/local/bin
    cp /usr/bin/fdfs_upload_file /usr/local/bin
    cp /usr/bin/fdfs_test /usr/local/bin

7. 连接目录

    ln -s /usr/include/fastcommon /usr/local/include/fastcommon 
    ln -s /usr/include/fastdfs /usr/local/include/fastdfs 
    ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
    ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

8.前面就已经安装完tracker了,启动测试。

        fdfs_trackerd /etc/fdfs/tracker.conf start

       查看服务: ps -ef|grep fdfs 

       

       查看日志:cat  /opt/fdfs/tracker/logs/trackerd.log

到此 tracker 安装完成。

安装 storage

    注:如果是同一台机器则(1-3步省略)

1.把文件拷贝到 /usr/local ,解压

     tar -zcxf  libfastcommon

     tar -zxvf FastDFS_v5.05.tar.gz

2.切换到 libfastcommon 目录

按照这个组件需要先安装它的依赖:

    cd libfastcommon    

    yum install gcc 

    yum install gcc-c++

    yum install gcc perl

    开始安装:
    ./make.sh
    ./make.sh install

3.安装FastDFS

        cd FastDFS
        ./make.sh
        ./make.sh install

4.安装后会在/etc/fdfs/ 目录生成fdfs的原始文件,切换到该目录下,复制storage.conf.sample文件:

        cd /etc/fdfs

         cp storage.conf.sample storage.conf

         创建storage的存储目录和日志目录

         mkdir -p /opt/fdfs/storage (日志目录,看自己喜欢创那都可以)
         mkdir -p /data/fdfs             (存储目录,看自己喜欢创那都可以)

 5.修改storage.conf的配置文件

        修改项:

        base_path=/opt/fdfs/storage(日志目录)
        group_name=group1(设定的组名)
        store_path0=/data/fdfs(存储目录)
        tracker_server=10.20.20.49:22122(tracker服务器ip)
        http.server_port=8080

 6. 拷贝fdfs命令到指定目录
    cp /usr/bin/fdfs_storaged /usr/local/bin
    cp /usr/bin/fdfs_monitor /usr/local/bin

 7.连接目录

    ln -s /usr/include/fastcommon /usr/local/include/fastcommon 
    ln -s /usr/include/fastdfs /usr/local/include/fastdfs 
    ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
    ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

 8.启动storage

     fdfs_storaged /etc/fdfs/storage.conf start

     查看storage是否启动成功 ps -ef|grep fdfs 

      

     查看日志文件:cat /opt/fdfs/stroage/logs/storaged.log 

 9.检验tracker 与storage 是否成关联  

     在安装storage 的机子上使用,出如下界面则说明已经安装成功:fdfs_monitor /etc/fdfs/storage.conf

    

10.上传文件测试,tracker 与storage 都可以:

      上传命令:

      fdfs_upload_file(上传命令)   工具   要上传的文件

      fdfs_upload_file     /etc/fdfs/client.conf   /usr/local/E.........82.png

    先在tracker上:

    然后在storage上:

    验证完成,只是访问不到文件,需要整合nginx 代理。

 

安装tracker 与nginx 结合(为了能够http访问到文件服务器的文件),所以需要与代理相结合。

安装nginx:

        确保依赖安装
        yum install –y openssl-devel pcre-devel zlib-devel
        yum install gd-devel

1.把以下文件拷贝到/usr/local/,解压相关文件

    tar  -zxvf fastdfs-nginx-module_v1.16.tar.gz

    tar -zxvf ngx_cache_purge-2.3.tar.gz

    tar -zxvf nginx-1.8.0.tar.gz

2.切换到 nginx-1.8.0,执行以下命令:

./configure  --prefix=/usr/local/nginx  --add-module=/usr/local/fastdfs-nginx-module/src  --add-module=/usr/local/ngx_cache_purge-2.3

make

make install

3.配置mod_fastdfs.conf(与nginx集成的关键步骤)

  把/usr/local/fastdfs-nginx-module/src 目录下的 mod_fastdfs.conf拷贝到 /etc/fdfs/

  cp  /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf      /etc/fdfs/

   否则启动nginx 报错:

      ERROR - file: shared_func.c, line: 960, open file /etc/fdfs/mod_fastdfs.conf fail, errno: 2, error info: No such file or     directory
      ERROR - file: /usr/local/fastdfs-nginx-module/src/common.c, line: 155, load conf file "/etc/fdfs/mod_fastdfs.conf" fail,     ret code: 2

4. 修改/etc/fdfs/mod_fastdfs.conf配置项

     vim /etc/fdfs/mod_fastdfs.conf

      修改项:

        base_path=/data/fdfs
        tracker_server=tracker服务器ip:22122   #修改为tracker server信息
        url_have_group_name= true #改为true
        store_path0=/data/fdfs #改为数据存储路径,和storage.conf一样
        group_name=group1
        group_count = 1

    并且在文件末尾加上以下信息

        [group1]
        group_name=group1
        storage_server_port=23000
        store_path_count=1(修改成1,默认是2,否则就配store_path1)
        store_path0=/opt/fdfs/tracker

5.拷贝/usr/local/src/FastDFS/conf/ 中的http.conf和mime.type ,到/etc/fdfs/ ;

   否则启动nginx报错:

    ERROR - file: ini_file_reader.c, line: 315, include file "http.conf" not exists, line: "#include http.conf"
    ERROR - file: /usr/local/fastdfs-nginx-module/src/common.c, line: 155, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2

        cp /usr/local/src/FastDFS/conf/http.conf /etc/fdfs/
        cp /usr/local/src/FastDFS/conf/mime.types /etc/fdfs/


  6.配置代理信息 nginx.conf  添加如下内容

   创建目录:  mkdir -p  /media/disk1/nginx/proxy_temp
                      mkdir -p  /media/disk1/nginx/proxy_cache

   在 http{ }中加入如下信息:

     include mime.types;
     default_type  application/octet-stream;
     server_names_hash_bucket_size 128;
     client_header_buffer_size 32k;
     large_client_header_buffers 4 32k;
     client_max_body_size 8m;
     sendfile on;
     tcp_nopush on;
     keepalive_timeout 60;

     tcp_nodelay on;

     client_body_buffer_size 512k;
     proxy_connect_timeout 5;
     proxy_read_timeout 60;
     proxy_send_timeout 5;
     proxy_buffer_size 16k;
     proxy_buffers 4 64k;
     proxy_busy_buffers_size 128k;
     proxy_temp_file_write_size 128k;
     proxy_temp_path /media/disk1/nginx/proxy_temp;
     proxy_cache_path /media/disk1/nginx/proxy_cache levels=1:2 keys_zone=content:20m inactive=1d max_size=100m;
     proxy_cache_bypass $http_secret_header;
     gzip on;
     gzip_min_length 1k;
     gzip_buffers 4 16k;
     gzip_http_version 1.0;
     gzip_comp_level 2;
     gzip_types text/plain application/x-javascript text/css application/xml;
     gzip_vary on;

      upstream fdfs_g1 {
        server 10.20.20.14:80 weight=1 max_fails=2 fail_timeout=30s; #(storage 代理服务器的地址)
     }

      location /group1/M00 {
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_cache content;
        proxy_cache_valid 200 304 12h;
        proxy_cache_key $request_uri$is_args$args;
        proxy_pass http://fdfs_g1;
        expires 30d;
     }

      location ~ /purge(/.*) {
        allow all;
        proxy_cache_purge content $1$is_args$args;
     }

8.启动tracker nginx 看集成是否成功。

  切换到 /usr/local/nginx/sbin 目录执行

    ./nginx 

   查看nginx 的日志文件 /usr/local/nginx/logs,日志无错误说明整合成功。

安装storage与nginx 结合(为了能够http访问到文件服务器的文件),所以需要与代理相结合。

前面的跟着tracker安装基本一样,唯一的区别就是nginx.conf 的配置

安装nginx:

        确保依赖安装
        yum install –y openssl-devel pcre-devel zlib-devel
        yum install gd-devel

1.把以下文件拷贝到/usr/local/,解压相关文件

    tar  -zxvf fastdfs-nginx-module_v1.16.tar.gz

    tar -zxvf ngx_cache_purge-2.3.tar.gz

    tar -zxvf nginx-1.8.0.tar.gz

2.切换到 nginx-1.8.0,执行以下命令:

./configure  --prefix=/usr/local/nginx  --add-module=/usr/local/fastdfs-nginx-module/src  --add-module=/usr/local/ngx_cache_purge-2.3

make

make install

3.配置mod_fastdfs.conf(与nginx集成的关键步骤)

  把/usr/local/fastdfs-nginx-module/src 目录下的 mod_fastdfs.conf拷贝到 /etc/fdfs/

  cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

4. 修改/etc/fdfs/mod_fastdfs.conf配置项

     vim /etc/fdfs/mod_fastdfs.conf

      修改项:

        base_path=/data/fdfs
        tracker_server=tracker服务器ip:22122   #修改为tracker server信息
        url_have_group_name= true #改为true
        store_path0=/data/fdfs #改为数据存储路径,和storage.conf一样
        group_name=group1
        group_count = 1

    并且在文件末尾加上以下信息:

        [group1]
        group_name=group1
        storage_server_port=23000
        store_path_count=1  (修改成1,默认是2,否则就配store_path1)
        store_path0=/data/fdfs(storage 的存储目录)

5.链接storage存储目录文件

    ln -s /data/fdfs/data /data/fdfs/data/M00

6.拷贝/usr/local/src/FastDFS/conf/ 中的http.conf和mime.type ,到/etc/fdfs/ 否则启动nginx报错:    

        cp /usr/local/src/FastDFS/conf/http.conf /etc/fdfs/
        cp /usr/local/src/FastDFS/conf/mime.types /etc/fdfs/

如果报 ERROR - file: ini_file_reader.c, line: 315, include file "http.conf" not exists, line: "#include http.conf"
           ERROR - file: /usr/local/fastdfs-nginx-module/src/common.c, line: 155, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2

则到/etc/fdfs/http.conf文件中 注释include http.conf 即可

7.配置代理信息 nginx.conf  添加如下内容即可,如需更多配置请自行研究:

      location ~/group1/M00 {
         root /opt/fdfs/data;(stroage的存储目录)
         ngx_fastdfs_module;
        }

8.启动storage nginx 看集成是否成功。

  切换到 /usr/local/nginx/sbin 目录执行

    ./nginx 

   查看nginx 的日志文件 /usr/local/nginx/logs

 

 storage 与nginx 整合成功。

10.安装完成,查看刚才的上传的文件是否可以访问,则验证完成:

访问tracker的代理(博主采用的是默认80端口),其实最终访问的是storage的代理。

访问storage的代理:

 

则安装成功!

centos610 安装分布式文件系统FastDFS

centos610 安装分布式文件系统FastDFS

1.什么是FastDFS?

FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS服务端有两个角色:跟踪器(tracker)存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。

存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的Meta data进行管理。所谓文件的Meta data就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的key为width,value为1024。文件Meta data是文件属性列表,可以包含多个键值对。

FastDFS系统结构如下图所示:

分享图片

2.本文目标

本文的目标是在CentOS上,单机安装FastDFS,包括Tracker和Storage,并结合Nginx的配置,最终完成文件的上传,并通过Nginx的路径来完成静态文件内容的展示

3.安装准备

  3.1.1安装依赖库

     在安装FastDFS和Nginx之前,需确保gcc、gcc-c++、 libstdc++-devel、make等依赖库和工具已经安装。

    

 yum -y install gcc gcc-c++ libstdc++-devel
 yum -y groupinstall ‘Development Tools‘ 
 yum -y install wget 
 yum -y install make

 3.1.2安装libfastcommon类库

   安装FastDFS必须先安装libfastcommon类库,否则会导致报错,安装直接根据如下几个步骤即可~

  

 wget https://github.com/happyfish100/libfastcommon/archive/master.zip
 unzip master.zip
 cd libfastcommon-master
 ./make.sh
 ./make.sh install

    安装结束。

 3.1.3安装FastDFS

 

 wget https://github.com/happyfish100/fastdfs/archive/master.tar.gz
 tar -zxvf master.tar.gz  
 cd fastdfs-master/
 ./make.sh
 ./make.sh install

     安装结束。

     安装好之后,在/usr/bin目录下,可以看fdfs开头的命令工具~

    

分享图片

     FastDFS安装完成之后,所有配置文件在/etc/fdfs目录下,tracker需要tracker.conf配置文件,storage需要storage.conf配置文件。

 3.1.4配置tracker.conf

 

cd /etc/fdfs
ll
cp tracker.conf.sample tracker.conf

   mkdir /opt/fastdfs

vi tracker.conf

   设置base_path=/opt/fastdfs/

   保存退出。

启动FastDFS -Tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf star

查看端口22122是否开始监听,确认启动是否成功

分享图片

   查看运行情况

   

分享图片

  查看日志是否启动成功

   cat /srv/fastdfs/tracker/logs/trackerd.log

 

分享图片

 

  tracker配置完成

 

 3.1.5配置storaged.conf

关于CentOS Docker 环境中安装及配置 FastDFS 分布式文件系统docker安装fastdfs集群的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于CentOS 7 安装配置分布式文件系统 FastDFS 5.11、CentOS 7.2搭建FastDFS 分布式文件系统,实现高可用集群、centos 分布式文件系统-FastDFS_v5.05安装、centos610 安装分布式文件系统FastDFS等相关知识的信息别忘了在本站进行查找喔。

本文标签: