分布式文件存储——fastDFS单机安装(linux)

目录

1、关闭防火墙:

2、配置hosts:

3、安装gcc环境:

(1)检查gcc环境:

(2)安装gcc环境:

4、安装libevent库:

5、安装libfastcommon:

(1)软件下载:

(2)软件解压:

(3)软件编译:

(4)软件安装:

6、安装fastDFS:

(1)软件下载:

(2)软件解压:

(3)软件编译:

(4)软件安装:

(5)安装后文件与目录:

A、服务脚本:

B、配置文件:

C、命令工具:

7、配置fastDFS跟踪器(tracker):

(1)获取样例配置文件:

(2)修改配置参数:

(3)创建数据目录:

(4)启动tracker后文件结构:

8、配置fastDFS存储(storage):

(1)获取样例配置文件:

(2)修改配置参数:

(3)创建数据目录:

(4)启动storage后文件结构:

9、上传测试:

(1)启动跟踪器(tracker):

(2)启动存储(storage):

(3)配置client文件:

A、获取样例配置文件:

B、修改配置参数:

(4)上传demo文件:

(5)测试上传文件到fastdfs:

10、安装nginx:

11、测试修改nginx配置文件:

12、测试启动nginx:

(1)nginx是服务:

(2)nginx不是服务:

13、测试http访问文件:

14、在fastDFS中配置nginx模块:

(1)下载fastdfs-nginx-module:

(2)解压fastdfs-nginx-module:

(3)增加nginx模块:

A、停掉nginx服务:

B、监测configure配置:

C、编译nginx:

D、安装nginx:

(4)查看nginx模块:

(5)配置fastdfs-nginx-module参数文件:

A、复制配置文件:

B、修改配置文件:

(6)复制FastDFS的部分配置文件:

(7)修改nginx配置:

A、配置端口号:

B、配置location:

(8)配置nginx服务:

A、创建nginx脚本文件:

B、修改脚本文件参数:

C、脚本文件授权:

D、操作服务:

15、测试http访问文件:

(1)启动跟踪器(tracker):

(2)启动存储(storage):

(3)启动nginx:

A、nginx是服务:

B、nginx不是服务:

(4)测试浏览器http访问文件:

16、启动fastDFS:

(1)启动跟踪器(tracker):

(2)启动存储(storage):

(3)检查storage与tracker是否通信:

(4)启动nginx:

A、nginx是服务:

B、nginx不是服务:

17、停止fastDFS:

(1)关闭nginx:

A、nginx是服务:

B、nginx不是服务:

(2)关闭跟踪器(tracker):

(3)关闭存储(storage):

18、设置开机自启:

(1)设置开机自启跟踪器(tracker):

A、加入到chkconfig列表:

B、设置服务开机自启:

(2)设置开机自启存储(storage):

A、加入到chkconfig列表:

B、设置服务开机自启:

(3)设置开机自启nginx:

A、加入到chkconfig列表:

B、设置服务开机自启:


1、关闭防火墙:

本次搭建关闭了防火墙,并且设置开机自动关闭防火墙,因此不需要考虑防火墙开放端口,如果生产环境不允许关闭防火墙,那么就将需要开放的端口号在防火墙上进行开通即可。

2、配置hosts:

在开始安装fastDFS之前先做一件事,修改hosts,将文件服务器的ip与域名映射,由于是安装fastDFS单机,因此只需要在一台服务器上配置hosts即可,因为后面很多配置里面都需要去配置服务器地址,ip变了,就只需要修改hosts即可。

使用vi命令修改/etc/hosts文件,增加IP与域名映射,一行一个:

3、安装gcc环境:

安装gcc环境,后面项目编译有需要用到gcc环境。

(1)检查gcc环境:

在服务器上通过命令检查是否安装gcc环境:

gcc -v

如果能显示gcc的版本信息表示该服务器上已经安装了gcc环境,就不需要重新安装了,否则就执行下载安装gcc环境的操作。

(2)安装gcc环境:

在服务器上通过yum命令进行安装:

yum install -y gcc gcc-c++

4、安装libevent库:

FastDFS依赖libevent库,在服务器上通过yum命令进行安装:

yum -y install libevent

5、安装libfastcommon:

libfastcommon是从FastDFS和FastDHT中提取出来的公共C函数库,基础环境,安装即可。

(1)软件下载:

软件下载地址:

https://github.com/happyfish100/libfastcommon/releases

分布式文件存储——fastDFS单机安装(linux)_第1张图片

注意:最好选择releases中最新版本。本地下载1.0.43。

(2)软件解压:

将下载的libfastcommon软件压缩包上传到服务器指定文件夹中,然后进行解压。

(3)软件编译:

进入到libfastcommon解压后的文件夹中,然后执行编译命令:

./make.sh

(4)软件安装:

进入到libfastcommon解压后的文件夹中,然后执行安装命令:

./make.sh install

6、安装fastDFS:

(1)软件下载:

软件下载地址:

https://github.com/happyfish100/fastdfs/releases

分布式文件存储——fastDFS单机安装(linux)_第2张图片

注意:最好选择releases中最新版本。本地下载6.0.6。

(2)软件解压:

将下载的fastdfs软件压缩包上传到服务器指定文件夹中,然后进行解压。

(3)软件编译:

进入到fastdfs解压后的文件夹中,然后执行编译命令:

./make.sh

(4)软件安装:

进入到fastdfs解压后的文件夹中,然后执行安装命令:

./make.sh install

(5)安装后文件与目录:

A、服务脚本:

服务脚本路径:

/etc/init.d/fdfs_storaged

/etc/init.d/fdfs_tracker

B、配置文件:

配置文件路径:

/etc/fdfs/client.conf.sample

/etc/fdfs/storage.conf.sample

/etc/fdfs/tracker.conf.sample

C、命令工具:

命令工具在 /usr/bin/文件夹中:

fdfs_appender_test

fdfs_appender_test1

fdfs_append_file

fdfs_crc32

fdfs_delete_file

fdfs_download_file

fdfs_file_info

fdfs_monitor

fdfs_storaged

fdfs_test

fdfs_test1

fdfs_trackerd

fdfs_upload_appender

fdfs_upload_file

stop.sh

restart.sh

7、配置fastDFS跟踪器(tracker):

当该服务器上fastDFS有tracker服务角色的时候才需要配置,如果只是单纯的storage服务角色那么就不需要配置tracker的配置文件了。

(1)获取样例配置文件:

进入/etc/fdfs,复制FastDFS跟踪器样例配置文件 tracker.conf.sample,并重命名为tracker.conf。命令如下:

cp tracker.conf.sample tracker.conf

(2)修改配置参数:

使用vi命令编辑tracker.conf,主要修改以下参数:

#提供服务的端口

port=22122

#Tracker数据和日志目录地址

base_path=/data/soft/fastdfs/tracker

#HTTP服务端口

http.server_port=8080

(3)创建数据目录:

创建tracker.conf中配置tracker数据和日志目录路径:

mkdir -p /data/soft/fastdfs/tracker

(4)启动tracker后文件结构:

Tracker服务启动成功后,会在base_path下创建data、logs两个目录。文件data为数据,文件logs为日志。

8、配置fastDFS存储(storage):

当该服务器上fastDFS有storage服务角色的时候才需要配置,如果只是单纯的tracker服务角色那么就不需要配置storage的配置文件了。

(1)获取样例配置文件:

进入/etc/fdfs 目录,复制FastDFS存储器样例配置文件 storage.conf.sample,并重命名为storage.conf。命令如下:

cp storage.conf.sample storage.conf

(2)修改配置参数:

使用vi命令编辑storage.conf,主要修改以下参数:

#指定此storage server所在 组(卷)

group_name=group1

# storage server服务端口

port=23000

# Storage数据和日志目录地址

base_path=/data/soft/fastdfs/storage

#存放文件时storage server支持多个路径。配置存放文件的基路径数目,通常只配一个目录。

store_path_count=1

#逐一配置store_path_count个路径,索引号基于 0。如果不配置 store_path0,那它就和base_path对应的路径一样。

store_path0=/data/soft/fastdfs/store_file

# FastDFS存储文件时,采用了两级目录。这里配置存放文件的目录个数。如果本参数只为 N(如:256),那么storage server在初次运行时,会在store_path下自动创建 N * N 个存放文件的子目录。

subdir_count_per_path=256

# tracker_server的列表,会主动连接 tracker_server,有多个tracker server时,每个tracker server写一行,建议写hosts中配的域名

tracker_server=file.lsy.com:22122

#访问端口

http.server_port=8888

(3)创建数据目录:

创建storage.conf中配置storage数据和日志目录路径:

mkdir -p /data/soft/fastdfs/storage

创建storage.conf中配置store_path0目录路径:

mkdir -p /data/soft/fastdfs/store_file

(4)启动storage后文件结构:

同 tracker、storage 启动成功后,在storage的base_path下创建了data、logs目录,记录着storage 服务的信息。在storage的store_path0目录下,创建了N*N个子目录。

9、上传测试:

(1)启动跟踪器(tracker):

可以用这种方式启动:

/etc/init.d/fdfs_trackerd start

也可以用这种方式启动:(推荐使用)

service fdfs_trackerd start

(2)启动存储(storage):

可以用这种方式启动

/etc/init.d/fdfs_storaged start

也可以用这种方式:(推荐使用)

service fdfs_storaged start

(3)配置client文件:

A、获取样例配置文件:

进入/etc/fdfs,复制FastDFS跟踪器样例配置文件 client.conf.sample,并重命名为client.conf。命令如下:

cp client.conf.sample client.conf

B、修改配置参数:

使用vi命令编辑client.conf,主要修改以下参数:

# Client的数据和日志目录

base_path=/data/soft/fastdfs/client

# Tracker端口

tracker_server=file.lsy.com:22122

(4)上传demo文件:

从本地windows上寻找一个测试上传的图片,然后将图片上传到服务器中client.conf配置文件中配置的client数据存储目录参数base_path的路径下。

(5)测试上传文件到fastdfs:

在linux服务器中执行命令上传lsy_test.jpg图片到fastDFS:

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf lsy_test.jpg

上传成功后返回文件ID号:

group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg

返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。

10、安装nginx:

安装Nginx作为服务器以支持Http方式访问文件,这样就可以通过http访问fastDFS进行下载文件。同时,后面安装FastDFS的Nginx模块也需要Nginx环境。

注意:Nginx只需要安装到StorageServer所在的服务器即可,用于访问文件。

11、测试修改nginx配置文件:

想通过nginx的http方式访问文件,那么就需要对nginx的配置文件进行简单的配置,进入到nignx安装文件夹的/conf中,修改配置文件nginx.conf:

添加如下行,将/group1/M00 映射到/data/soft/fastdfs/store_file/data(也就是storage配置文件中store_path0参数的值再加上data目录)

location /group1/M00 {

    alias /data/soft/fastdfs/store_file/data;

}

12、测试启动nginx:

(1)nginx是服务:

如果nginx已经配置成服务了,那么就用服务启动:

service nginx start

(2)nginx不是服务:

如果nginx没有配置成服务,那么就进入到nginx安装文件中,执行sbin下nginx命令:

./nginx

13、测试http访问文件:

刚刚测试上传到fastDFS中图片返回的文件ID号为:

group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg

该文件实际存储在fastDFS的storage配置的/data/soft/fastdfs/store_file/data/00/00中对应的文件名,并且nginx中配置了group1/M00转发到/data/soft/fastdfs/store_file/data,因此可以通过http的方式访问到刚刚上传的图片,在windows浏览器中输入:http://192.168.0.141:80/group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg,其中IP和端口号就是nginx访问地址,加上fastDFS中文件ID号即可,就能访问到刚刚上传的图片了。

14、在fastDFS中配置nginx模块:

FastDFS通过Tracker服务器,将文件放在Storage服务器存储, 但是同组存储服务器之间需要进行文件复制, 有同步延迟的问题。假设Tracker服务器将文件上传到了192.168.51.128,上传成功后文件 ID已经返回给客户端。此时FastDFS存储集群机制会将这个文件同步到同组存储192.168.51.129,在文件还没有复制完成的情况下,客户端如果用这个文件ID在 192.168.51.129 上取文件,就会出现文件无法访问的错误。而fastdfs-nginx-module可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

与上边测试修改nginx配置文件,然后通过nginx的http访问文件的原理是一样,只不过测试用的nginx是直接访问文件,我们最好是安装fastdfs-nginx-module后,让nginx通过fastdfs-nginx-module模块进行重定向文件链接到源服务器取文件。

综上所述,在fastDFS集群中storage角色的节点上一定要安装fastdfs-nginx-module模块,本次安装为单机,为了演示安装步骤也就安装该模块了。

(1)下载fastdfs-nginx-module:

软件下载地址:

https://github.com/happyfish100/fastdfs-nginx-module/releases

分布式文件存储——fastDFS单机安装(linux)_第3张图片

注意:最好选择releases中最新版本。本地下载1.22。

(2)解压fastdfs-nginx-module:

将下载的fastdfs-nginx-module软件压缩包上传到服务器指定文件夹中,然后进行解压。

(3)增加nginx模块:

上面已经安装过nginx了,是默认安装的,没有添加fastdfs-nginx-module模块,因此要重新安装nginx。

A、停掉nginx服务:

如果nginx已经配置成服务了,那么就关闭服务即可:

service nginx stop

如果nginx没有配置成服务,那么将上面安装的nginx进程停掉。可以通过ps -ef | grep nginx找到进程ID,然后killl -9 进程ID杀死进程即可。

B、监测configure配置:

进入到nginx解压后的文件中,执行configure命令,并通过prefix参数设置nginx安装路径,通过add-module参数设置增加模块:

./configure --prefix=/data/soft/nginx/nginx1 --add-module=/data/soft/fastdfs_nginx_module/fastdfs-nginx-module-1.22/src

说明:prefix值为nginx安装路径,add-module值为fastdfs-nginx-module解压的路径加上src文件夹。

C、编译nginx:

进入到nginx解压后的文件中,执行make命令:

make

D、安装nginx:

进入到nginx解压后的文件中,执行make install命令:

make install

(4)查看nginx模块:

进入到nginx安装路径下sbin中,通过命令查看nginx模块:

./nginx -V

有如下模块配置信息表示fastdfs-nginx-module模块增加成功:

(5)配置fastdfs-nginx-module参数文件:

A、复制配置文件:

进入到fastdfs-nginx-module解压文件夹内src中,复制mod_fastdfs.conf文件到/etc/fdfs目录:

cp mod_fastdfs.conf /etc/fdfs/

B、修改配置文件:

进入到/etc/fdfs文件夹中,修改配置文件mod_fastdfs.conf,主要修改一下参数:

#连接超时时间

connect_timeout=10

# Tracker Server

tracker_server=file.lsy.com:22122

# StorageServer端口

storage_server_port=23000

#Storage所属group的组名

group_name=group1

#如果文件ID的uri中包含/group**,则要设置为true

url_have_group_name = true

# Storage配置的store_path0路径,与storage.conf中的一致

store_path0=/data/soft/fastdfs/store_file

(6)复制FastDFS的部分配置文件:

进入到fastDFS源码解压文件内conf中,复制anti-steal.jpg、http.conf、mime.types三个文件到/etc/fdfs中:

cp anti-steal.jpg http.conf mime.types /etc/fdfs/

(7)修改nginx配置:

进入到nginx安装文件夹的conf中,修改配置文件nginx.conf,主要修改以下参数:

A、配置端口号:

nginx端口号要与该服务器上所在的storage的配置文件/etc/fdfs/storage.conf中的参数http.server_port的端口号一致。

分布式文件存储——fastDFS单机安装(linux)_第4张图片

B、配置location:

在server中增加location配置

location ~/group([0-9])/M00 {

    ngx_fastdfs_module;

}

分布式文件存储——fastDFS单机安装(linux)_第5张图片

(8)配置nginx服务:

默认安装好的nginx只能通过找到安装路径下的sbin/nginx进行启动,非常不方便,因此要将nginx设置成服务,这样就能通过service nginx start/stop/status等方便进行操作了。

A、创建nginx脚本文件:

将nginx默认的脚本文件上传到/etc/init.d/文件夹中,默认脚本文件存储在对应文件中,或者从网上进行复制也可以,网址:

https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/

B、修改脚本文件参数:

通过vi命令修改/etc/init.d/nginx脚本文件,主要修改以下参数:

#修改成nginx执行程序的路径。

nginx=”/usr/local/nginx/sbin/nginx”

#修改成nginx.conf文件的路径。

NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf”

C、脚本文件授权:

给/etc/init.d/nginx脚本文件授权:

chmod 777 /etc/init.d/nginx

D、操作服务:

启动nginx服务:

执行命令:

service nginx start

关闭nginx服务:

执行命令:

service nginx stop

查看nginx服务状态:

执行命令:

service nginx status

15、测试http访问文件:

(1)启动跟踪器(tracker):

可以用这种方式启动:

/etc/init.d/fdfs_trackerd start

也可以用这种方式启动:(推荐使用)

service fdfs_trackerd start

(2)启动存储(storage):

可以用这种方式启动

/etc/init.d/fdfs_storaged start

也可以用这种方式:(推荐使用)

service fdfs_storaged start

(3)启动nginx:

A、nginx是服务:

如果nginx已经配置成服务了,那么就用服务启动:

service nginx start

B、nginx不是服务:

如果nginx没有配置成服务,那么就进入到nginx安装文件中,执行sbin下nginx命令:

./nginx

启动nginx后打印如下信息表示配置成功:

(4)测试浏览器http访问文件:

刚刚测试上传到fastDFS中图片返回的文件ID号为:

group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg

因此可以通过http的方式访问到刚刚上传的图片,在windows浏览器中输入:http://192.168.0.141:8888/group1/M00/00/00/wKgAjV6jmjGAN0M5AABt9XhqQmA393.jpg,其中IP和端口号就是nginx访问地址,加上fastDFS中文件ID号即可,就能访问到刚刚上传的图片了。

16、启动fastDFS:

(1)启动跟踪器(tracker):

可以用这种方式启动:

/etc/init.d/fdfs_trackerd start

也可以用这种方式启动:(推荐使用)

service fdfs_trackerd start

(2)启动存储(storage):

可以用这种方式启动

/etc/init.d/fdfs_storaged start

也可以用这种方式:(推荐使用)

service fdfs_storaged start

(3)检查storage与tracker是否通信:

启动tracker和storage后,通过命令检查storage是否与tracker进行了正确通信:

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

分布式文件存储——fastDFS单机安装(linux)_第6张图片

(4)启动nginx:

A、nginx是服务:

如果nginx已经配置成服务了,那么就用服务启动:

service nginx start

B、nginx不是服务:

如果nginx没有配置成服务,那么就进入到nginx安装文件中,执行sbin下nginx命令:

./nginx

17、停止fastDFS:

(1)关闭nginx:

A、nginx是服务:

如果nginx已经配置成服务了,那么直接通过服务关闭即可:

service nginx stop

B、nginx不是服务:

如果nginx没有配置成服务,那么可以通过ps -ef | grep nginx找到nginx的进程ID,然后通过kill -9 进程ID杀死该进程即可。

(2)关闭跟踪器(tracker):

执行命令:

service fdfs_trackerd stop

(3)关闭存储(storage):

执行命令:

service fdfs_storaged stop

18、设置开机自启:

(1)设置开机自启跟踪器(tracker):

A、加入到chkconfig列表:

执行命令:

chkconfig --add /etc/init.d/fdfs_trackerd

B、设置服务开机自启:

执行命令:

chkconfig fdfs_trackerd on

(2)设置开机自启存储(storage):

A、加入到chkconfig列表:

执行命令:

chkconfig --add /etc/init.d/fdfs_storaged

B、设置服务开机自启:

执行命令:

chkconfig fdfs_storaged on

(3)设置开机自启nginx:

设置nginx开机自启,首先需要将nginx配置成服务,如果nginx没有配置成服务那么就不能够设置开机自启,nginx配置成服务的步骤见对应的nginx汇总整理。

A、加入到chkconfig列表:

执行命令:

chkconfig --add /etc/init.d/nginx

B、设置服务开机自启:

执行命令:

chkconfig nginx on

 

你可能感兴趣的:(分布式文件存储)