分布式文件系统FastDFS集群搭建

一、集群规划

服务器名称 IP地址
fastdsf-tracker1 192.168.0.250
fastdsf-tracker2 192.168.0.251
fastdfs-storage1-group1 192.168.0.252
fastdfs-storage2-group1 192.168.0.253
fastdfs-storage3-group2 192.168.0.254
fastdfs-storage4-group2 192.168.0.249

二、安装所需资源包

安装包 作用
FastDFS_v5.08.tar.gz FastDFS源码
libfastcommon-master.zip 从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库
fastdfs-nginx-module-master.zip storage节点http服务nginx模块
nginx-1.10.0.tar.gz Nginx安装包
ngx_cache_purge-2.3.tar.gz 图片缓存清除Nginx模块(集群环境会用到)

安装包下载链接: 点击这里下载.

三、集群的部署

1.在"/usr/local/"目录下新建一个"software"目录,用来存放我们的安装文件。这样做的好处是容易管理。

cd /usr/local
mkdir software

2.把下载好的安装包上传到software目录下
在这里插入图片描述
3.安装gcc,在6台虚拟机也都安装下gcc环境。

yum install make cmake gcc gcc-c++

4.最小化安装是没有zip和unzip命令的,所以需要安装,安装命令:

yum install zip unzip

5.解压libfastcommon-master.zip。使用命令:

unzip libfastcommon-master.zip -d /usr/local/fast/

6.安装vim,之所以安装vim是因为安装vim会自动帮我们安装perl,否则我们使用./make.sh来编译的时候会报错。安装vim所使用命令:

yum install vim-enhanced

7.编译libfastcommon-master,我们到/usr/local/fast/libfastcommon-master目录下,使用命令:./make.sh来进行编译。
8.接着执行./make.sh install命令
在这里插入图片描述
9.创建软链接,我们从上图中可以看到执行./make.sh install命令后把fastcommon安装在了/usr/lib64下面,这个目录不是我们常用的目录,如果不实用软链接的话,将来安装的东西多了,它们的安装目录我们将比较难找到,不便于管理操作,为了在我们熟悉的目录下看到我们安装的目录,我们使用软链接来实现。
创建第一条软链接的命令:

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

接着再创建三条软链接,命令依次如下:

[root@itcast05 lib]# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
[root@itcast05 lib]# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
[root@itcast05 lib]# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

10.安装FastDFS,我们先到/usr/local/softWare/目录下,然后使用命令:

tar -zxvf FastDFS_v5.08.tar.gz -C /usr/local/fast/

进行解压,如下图所示。
在这里插入图片描述
解压完后,我们进入到/usr/local/fast/fastDFS/目录下,依次执行

./make.sh
./make.sh install

命令进行安装。
11.因为FastDFS服务脚本设置的bin目录为/usr/local/bin/下,但是实际我们安装在了/usr/bin/下面。所以我们需要修改FastDFS配置文件中的路径,也就是需要修改两个配置文件,输入命令:

vim /etc/init.d/fdfs_storaged

输入一个":",然后输入全局替换命令:

%s+/usr/local/bin+/usr/bin

并按回车即可完成替换,替换完之后,保存退出该文件,然后再打开看一下是否都已经将/usr/local/bin替换成/usr/bin了。
同样的步骤,输入第二条命令:

vim /etc/init.d/fdfs_trackerd 

进行全局替换,替换命令:

%s+/usr/local/bin+/usr/bin

12.前面做的都是公共部分的配置,下面我们来配置tracker1(192.168.0.250)和tracker2(192.168.0.251)。我们先到/etc/fdfs/目录下,使用

cp tracker.conf.sample tracker.conf

复制一份tracker.conf.sample并更名为tracker.conf。

编辑tracker.conf文件,需要修改的地方有两处,第一处:base_path,将默认的路径修改为/fastdfs/tracker。第二处:store_lookup,该值默认是2(即负载均衡策略),现在把它修改为0(即轮询策略,修改成这样方便一会儿我们进行测试,当然,最终还是要改回到2的。如果值为1的话表明要始终向某个group进行上传下载操作,这时下图中的"store_group=group2"才会起作用,如果值是0或2,则"store_group=group2"不起作用)。
在这里插入图片描述

由于我们给base_path配置的路径/fastdfs/tracker当前并不存在,因此我们需要在192.168.156.5和192.168.156.6上创建一下该目录,创建命令:

mkdir -p /fastdfs/tracker

其中-p表示递归创建目录。

配置完了tracker1和tracker2,现在我们来启动两个tracker。我们先到我们刚创建的/fastdfs/tracker/目录下,发现当前该目录下什么也没有。

在启动前,我们需要先在tracker和tracker这两台设备上配置一下防火墙,添加端口22122,从而可以让其它设备可以访问22122端口。添加的内容:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT,如下图所示(注意所有的例子都是以一个为例,其它照着操作就可以了)。

在这里插入图片描述

添加完之后重启防火墙

service iptables restart

下面我们便使用命令:

/etc/init.d/fdfs_trackerd start

进行启动,启动之后,我们再查看该目录,发现多了两个目录data和logs,我们可以通过命令:

ps -ef | grep fdfs

来查看tracker是否正常启动,如下图所示。

如果想要停止tracker的话,就使用命令:

/etc/init.d/fdfs_trackerd stop

13.配置storage,按照我们的规划,192.168.0.252、192.168.0.253、192.168.0.254、192.168.0.249四台虚拟机将作为我们的存储节点,四个节点中同一组的配置应该是相同的,也就是192.168.0.252、192.168.0.253一组(组名为group1),192.168.0.254、192.168.0.249一组(组名为group2)。

首先,进入4台机器的配置文件目录/etc/fdfs,然后进行复制storage.conf.sample并更名为storage.conf,使用的命令:

cp storage.conf.sample storage.conf

如下图所示
在这里插入图片描述

接下来我们编辑storage.conf文件,对于group1的192.168.156.7、192.168.156.8这两台设备需要修改的配置如下。

   base_path=/fastdfs/storage
   store_path0=/fastdfs/storage
   tracker_server=192.168.0.250:22122
   tracker_server=192.168.0.251:22122

修改完后,如下图所示:

在这里插入图片描述
在这里插入图片描述

注意:192.168.0.252和192.168.0.253属于group1,192.168.0.254和192.168.0.249属于group2

由于四个配置文件的base_path=/fastdfs/storage和store_path0=/fastdfs/storage都配置成了/fastdfs/storage,但是目前我们这四台虚拟机还未创建过该目录,因此我们需要为这四台虚拟机都创建一下该目录,命令:

mkdir -p /fastdfs/storage

启动storage之前,我们需要先对这四台虚拟机的防火墙做下配置,添加端口23000,添加语句:-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT,如下图所示。
在这里插入图片描述

重启防火墙:

service iptables restart

配置完防火墙之后,我们到storage所在的四台虚拟机的/fastdfs/storage目录下,使用命令:

/etc/init.d/fdfs_storaged start

进行启动,然后使用命令:

tailf logs/storaged.log

来查看启动信息,如下图所示(192.168.0.252这台虚拟机的操作图)。可以看到,192.168.0.252这台设备成功与两个tracker设备连接了,其中选举了192.168.0.251作为tracker集群的leader。192.168.0.252和192.168.0.253这两台虚拟机同属一个分组(group1),因此可以从下图的信息中看到成功与192.168.0.253连接的信息。
在这里插入图片描述
依次启动4台storage都没有问题。

14.集群启动后,接着我们测试下集群的tracker的高可用性。现在我们人为关掉192.168.0.251的tracker,执行以下命令:

/etc/init.d/fdfs_trackerd stop

在这里插入图片描述
关掉192.168.0.251的tracker之后,我们再看看storage所在的四台虚拟机的日志信息。如上图所示,可以看到192.168.0.250自动切换成leader角色了,而且显示连不上192.168.0.251了(因为已经关了tracker了,所以都连不上了)。

我们再启动192.168.0.251的tracker后,再看看四台设备的日志信息,如下图所示,可以看到,都重新连接上该tracker了。只不过此时tracker的leader依然是192.168.0.250。

15.当我们所有的tracker和storage节点都启动成功之后,我们可以在任意的一个存储节点上查看存储集群的信息,命令:

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

可以看到如下图所示的集群信息。可以看到tracker Server有两个,当前提供服务的是192.168.0.250,group的数量是2,第一组的IP有192.168.0.252和192.168.0.253,第二组的IP有192.168.0.254和192.168.0.249,与我们规划的集群完全一致。

在这里插入图片描述
在这里插入图片描述

  1. 可以使用命令:
 cd /usr/bin/ && ls | grep fdfs

来查看fdfs所有的命令,如下图所示。
在这里插入图片描述

17.设置 FastDFS 跟踪器和存储器开机自启动

vim /etc/rc.d/rc.local

在这里插入图片描述

四、文件上传测试

1、修改 Tracker 服务器中的客户端配置文件
执行以下命令:

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

修改客户端配置文件:

vim /etc/fdfs/client.conf
base_path=/fastdfs/tracker
tracker_server=192.168.0.250:22122
tracker_server=192.168.0.251:22122

2、执行以下文件上传指令:

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/FastDFS_v5.08.tar.gz

返回 ID 号:
group1/M00/00/00/wKgBh1Xtr9-AeTfWAAVFOL7FJU4.tar.gz
group2/M00/00/00/wKgBiVXtsDmAe3kjAAVFOL7FJU4.tar.gz
(能返回以上文件 ID, 说明文件上传成功)

猜你喜欢

转载自blog.csdn.net/qa76774730/article/details/86425380
今日推荐