6.1 架构图

image.png

  • 如果你公司刚好用这个,那你就会搭建集群
  • 涉及到多个Linux,你可以更进一步熟悉一下Linux
  • 提升自己驾驭复杂环境的能力

6.2 环境搭建步骤

搭建一个FastDFS分布式文件系统集群,推荐至少部署6个服务器节点

6.2.1 安装6个迷你版的Linux

迷你版Linux没有图形界面,占用磁盘及资源小,企业里面使用的Linux都是没有图形界面的Linux,在安装的时候,最少要给每一个虚拟机分配3.5G的内存空间,我这里分配5G,内存我这里分配的是512M

1)打开Vmware,点击创建新的虚拟机

image.png

2)选择典型安装

image.png

3)选择安装Linux迷你版安装文件位置

image.png

4)指定虚拟机名称及安装位置

image.png

5)为虚拟机分配磁盘空间

image.png

6)为虚拟机分配内存

我是8G内存,每个虚拟机分配512M,因为是迷你版,所以内存消耗不会太大
image.png

7)开启此虚拟机

image.png

8)开始安装

image.png

9)选择语言为English

image.png

10)打开网络连接(重要)

image.png
image.png
image.png
这个选项点进去完成一下就好,其它配置都可以默认,但是网络一定要打开,否则虚拟机之间无法通讯

11)设置root用户密码为123456

image.png

12)创建普通用户centos,设置密码为123456

image.png

13)安装完毕后,重启安装的CentOS系统

6.2.2 在Xshell中创建6个连接,分别连向不同的Linux

image.png

6.2.3 为迷你版的Linux安装常用工具库

由于迷你版Linux缺少一些常用的工具库,操作起来不方便,推荐安装如下的工具库

安装lrzsz, yum install lrzsz -y
安装wget, yum install wget -y
安装vim, yum install vim -y
安装unzip,yum install unzip -y
安装ifconfig,yum install net-tools -y

yum install lrzsz wget vim unzip net-tools –y

打开撰写栏,方便批量执行命令
image.png

6.2.4 按照课件上安装FastDFS的步骤在6个服务器节点安装FastDFS

6.2.5 配置两个tracker server服务器

为了方便操作,我们再启动一次Xshell,一个Xshell操作Tracker,另一个操作Storage,

将Tracker和Storage分开
**

  • 把/etc/fdfs目录下的配置文件.sample后缀都去掉
  • 修改两个tracker服务器的配置文件:

tracker.conf: 修改一个地方:
base_path=/opt/fastdfs/tracker #设置tracker的数据文件和日志目录(需预先创建)

  • 创建存放数据的目录

6.2.6 配置四个storage server服务器

每两个storage server为一组,共两个组(group1 和 group2),一个组内有两个storage server

1)修改第一组group1的第一个storage server(修改storage.conf配置文件)

  1. group_name=group1 #组名,根据实际情况修改,值为 group1 group2
  2. base_path=/opt/fastdfs/storage #设置storage的日志目录(需预先创建)
  3. store_path0=/opt/fastdfs/storage/files #存储路径
  4. tracker_server=192.168.235.129:22122 #tracker服务器的IP地址和端口号,配2
  5. tracker_server=192.168.235.130:22122

2)第一个组的第二个storage按照相同的步骤操作

或者将第一组的配置文件下载到桌面上,然后上传覆盖第一组的第二个storage

3)第二组的两个storage也按照相同的步骤操作;唯一的区别是group_name=group2

可以在桌面上对第一个组的storage文件进行修改,将组名修改为group2,然后上传覆盖
至此,一个FastDFS的分布式文件系统集群就搭建好了。

4)注意:配置文件中不要出现中文,另外别忘了创建配置文件中指定的目录

5)启动两个tracker,再启动四个storage

6)关闭6个Linux防火墙,通过09-fastdfs-java的代码进行测试

  • 修改配置文件为两个tracker
  • 测试负载均衡:tracker.conf文件 (修改 store_lookup=0 表示轮训策略)

6.2.7 部署Http访问FastDFS上的文件

1)先完成4个storage server的Nginx访问

这4个Nginx需要去fastDFS找对应的文件,所以需要安装FastDFS的Nginx扩展模块

A、配置带有FastDFS扩展模块的Nginx

1、在四个storage server上安装Nginx,并且加入FastDFS扩展模块;
2、修改两组4个storage的nginx扩展模块配置文件mod_fastdfs.conf

  1. base_path=/opt/fastdfs/nginx_mod #保存日志目录(需提前创建)
  2. tracker_server=192.168.230.129:22122 #tracker服务器的IP地址以及端口号
  3. tracker_server=192.168.230.130:22122
  4. group_name=group1 #当前服务器的group名,第二组应配置为group2
  5. url_have_group_name=true #文件url中是否有group
  6. store_path_count=1 #存储路径个数,需要和store_path个数匹配(一般不用改)
  7. store_path0=/opt/fastdfs/storage/files #存储路径
  8. group_count = 2 #设置组的个数
  9. 在末尾增加2个组的具体信息:
  10. [group1]
  11. group_name=group1
  12. storage_server_port=23000
  13. store_path_count=1
  14. store_path0=/opt/fastdfs/storage/files
  15. [group2]
  16. group_name=group2
  17. storage_server_port=23000
  18. store_path_count=1
  19. store_path0=/opt/fastdfs/storage/files

B、第一组的第二台和上面的配置一样

C、第二组的两台只需要把group_name=group2即可

D、至此,mod_fastdfs.conf就配置好了。

2)配置两组4个storage的nginx拦截请求路径:

  1. location ~ /group[1-9]/M0[0-9] {
  2. ngx_fastdfs_module;
  3. }

至此4个storage服务器上的Nginx就搭建配置OK了,

然后可以进行测试:
重启storage,启动Nginx

http://192.168.119.128:80/group1/M00/00/00/wKh3jVx6FUCARyK2AAAANaS4cxw338.txt http://192.168.92.132:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
http://192.168.92.133:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
http://192.168.92.134:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt

注意:每一台都可以访问到,就算是当前组中没有改文件,因为向浏览器中发送请求的时候

  • 交给Nginx进行location匹配
  • 匹配上之后调用FastDFS的扩展模块
  • 扩展模块会读取扩展模块配置文件mod_fast.conf
  • 通过扩展模块配置文件,找到对应的Tracker,从而找到对应的文件

3)在两个tracker server安装Nginx

这两个Nginx只需要做负载均衡,不要找文件,所以不需要安装扩展模块
**

4)配置两个tracker server服务器上的Nginx访问

部署配置nginx负载均衡:

  1. upstream fastdfs_storage_server {
  2. server 192.168.92.131:80;
  3. server 192.168.92.132:80;
  4. server 192.168.92.133:80;
  5. server 192.168.92.134:80;
  6. }
  1. #nginx拦截请求路径:
  2. location ~ /group[1-9]/M0[0-9] {
  3. proxy_pass http://fastdfs_storage_server;
  4. }

至此,两个tracker服务器的Nginx就搭建配置OK了。
启动两个tracker服务器的Nginx进行测试。

http://192.168.92.129:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt
http://192.168.92.130:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt

5)部署前端用户访问入口服务器,该Nginx负载均衡到后端2个tracker server

这个Nginx也只需要做负载均衡,不要找文件,所以不需要安装扩展模块
可以对Windows上的的Nginx进行配置
**
部署配置nginx负载均衡:

  1. upstream fastdfs_tracker_server {
  2. server 192.168.92.129:80;
  3. server 192.168.92.130:80;
  4. }
  1. #nginx拦截请求路径:
  2. location ~ /group[1-9]/M0[0-9] {
  3. proxy_pass http://fastdfs_tracker_server;
  4. }

访问:http://127.0.0.1:80/group1/M00/00/00/wKhchFv7xQeAQbrBAAAALDPVPvc081.txt

至此,一个三层结构的Nginx访问架构就搭建配置OK了。为了保证高可用性,一般在入口出,会添加一个备用Nginx上,中间通过一个keepAlive软件连接。

最后,为了让服务能正常连接tracker,请关闭所有机器的防火墙:

systemctl status firewalld
systemctl disable firewalld
systemctl stop firewalld**