FastDFS教程
FastDFS环境搭建
分布式文件系统FastDFS的HTTP访问
FastDFS在Java项目中开发示例
FastDFS在web项目中的应用
FastDFS分布式文件系统集群

FastDFS分布式文件系统集群

架构图

● 如果你公司刚好用这个,那你就会搭建集群

● 涉及到多个Linux,你可以更进一步熟悉一下Linux

● 提升自己驾驭复杂环境的能力

环境搭建步骤

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

1. 安装6个迷你版的Linux

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

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

② 选择典型安装

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

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

⑤ 为虚拟机分配磁盘空间

⑥ 为虚拟机分配内存

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

⑦ 开启此虚拟机

⑧ 开始安装

⑨ 选择语言为English

⑩ 打开网络连接(重要)

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

(11) 设置root用户密码为123456

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

 

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

 

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

 

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

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

o 安装lrzsz, yum install lrzsz -y

o 安装wget, yum install wget -y

o 安装vim, yum install vim -y

o 安装unzip,yum install unzip -y

o 安装ifconfig,yum install net-tools -y

yum install lrzsz wget vim unzip net-tools –y

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

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

5.  配置两个tracker server服务器

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

o 把/etc/fdfs目录下的配置文件.sample后缀都去掉

o 修改两个tracker服务器的配置文件:

tracker.conf: 修改一个地方:

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

o 创建存放数据的目录

6.  配置四个storage server服务器

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

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

group_name=group1 #组名,根据实际情况修改,值为 group1 或 group2

base_path=/opt/fastdfs/storage #设置storage的日志目录(需预先创建)

store_path0=/opt/fastdfs/storage/files #存储路径

tracker_server=192.168.235.129:22122 #tracker服务器的IP地址和端口号,配2个tracker_server=192.168.235.130:22122

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

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

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

可以在桌面上对第一个组的storage文件进行修改,将组名修改为group2,然后上传覆盖

至此,一个FastDFS的分布式文件系统集群就搭建好了。

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

⑤ 启动两个tracker,再启动四个storage

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

修改配置文件为两个tracker

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

7. 部署Http访问FastDFS上的文件

① 先完成4个storage server的Nginx访问

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

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

在四个storage server上安装Nginx,并且加入FastDFS扩展模块;

修改两组4个storage的nginx扩展模块配置文件 mod_fastdfs.conf

base_path=/opt/fastdfs/nginx_mod #保存日志目录(需提前创建)
tracker_server=192.168.230.129:22122  #tracker服务器的IP地址以及端口号
tracker_server=192.168.230.130:22122
group_name=group1  #当前服务器的group名,第二组应配置为group2
url_have_group_name=true     #文件url中是否有group名
store_path_count=1           #存储路径个数,需要和store_path个数匹配(一般不用改)
store_path0=/opt/fastdfs/storage/files    #存储路径
group_count = 2                   #设置组的个数

在末尾增加2个组的具体信息:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs/storage/files

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs/storage/files

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

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

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

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

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

至此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,从而找到对应的文件

③ 在两个tracker server安装Nginx

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

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

部署配置nginx负载均衡:
upstream fastdfs_storage_server {  
    server 192.168.92.131:80;  
    server 192.168.92.132:80;
    server 192.168.92.133:80;  
    server 192.168.92.134:80;  
}
#nginx拦截请求路径:
location ~ /group[1-9]/M0[0-9] {   
    proxy_pass http://fastdfs_storage_server; 
}

至此,两个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

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

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

部署配置nginx负载均衡:

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

访问: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