Fastdfs集群搭建

一、简单介绍:

FastDFS是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。

二、Fastdfs架构说明:

FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Trackerserver调度最终由Storage server完成文件上传和下载。
  FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
  Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。通过Trackerserver在文件上传时可以根据一些策略找到Storageserver提供文件上传服务。这里要注意的是Tracker有自己功能的配置下,既设置它管理所有的storage,也可以指定它管理特定的组。
  Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。

Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。

Fastdfs集群搭建_第1张图片

三、Fastdfs角色说明:

tracker:跟踪者,负责调度存储服务;(tracker服务端口:22122)

storage:用于文件存储;(storage端口:23000)

client:调用tracker;

四、部署fastdfs

执行部署脚本,进行安装;部署安装包见文章顶部;

tracker.conf配置文件详解见如下:

vim /etc/fdfs/tracker.conf
disabled=false #启用配置文件(默认false)
bind_addr= #解析主机地址,空则解析所有主机
port=22122 #tracker服务端口
connect_timeout=30 #连接超时时间30S
network_timeout=60 #网络超时时间60S
base_path=/data/hexin/fastDFS/tracker #tracker基础数据存储路径及日志存放路径
max_connections=256 #最大并发连接数
work_threads=4 #工作线程数,最好和cpu核数保持一致
store_lookup=0 #选择上传文件模式 0代表group轮询 1指定特定group 2选择空间最大的group
#store_group= #上传文件组,如果模式为1,则必须设置成核特定group一致的组名
store_server=0 #选择存储服务器上传文件 0代表轮询,1根据通过IP第的顺序 2通过优先级
store_path=0 #选择哪块存储盘上传文件 0代表轮询,2代表优先最大存储空间盘(路径)
download_server=0 #选择哪台存储服务器下载文件0代表轮询,1代表当前文件上传的源服务器
reserved_storage_space = 10% #系统保留存储空间10%

storage.conf详解见如下:

vim /etc/fdfs/storage.conf
group_name=group1 #存储组名
client_bind=true #当连接其他服务器时解析该主机地址
port=23000 #storage端口 23000
store_path_count=1 #存储路径个数,需要和store_path个数匹配
base_path=/data/hexin/fastDFS/storage #基础存储数据和日志文件
store_path0=/data/hexin/fastDFS/storage #group所占用的目录或硬盘,有几个写几个
tracker_server=192.168.0.1:22122 #指定tracker1服务器
tracker_server=192.168.0.2:22122 #指定tracker2服务器

五、安装nginx并添加fastdfs-nginx-module模块

mod_fastdfs.conf(此配置文件是fastdfs-nginx-module模块的配置文件)

安装步骤如下:

1、先安装nginx;

2、安装fastdfs-nginx-module,解压fastdfs-nginx-module包以及拷贝mod_fastdfs.conf配置文件
cd /home/
unzip fastdfs-nginx-module-1.22.zip
cp /home/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/

3、备份原来nginx程序文件,重新进行nginx配置,编译
cp /home/nginx/sbin/nginx /home/nginx/sbin/nginx.bak

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  --add-module=/home/software/fastdfs-nginx-module/src

make

4、再进入nginx源码,进行安装
make install

修改mod_fastdfs.conf配置文件

vim /etc/fdfs/mod_fastdfs.conf
base_path=/data/hexin/fastDFS/storage #修改成和storage 存放路径一致
tracker_server=192.168.0.1:22122 #配置成tracker server 地址和端口
tracker_server=192.168.0.2:22122 #配置成tracker server 地址和端口
url_have_group_name = true #url中是否包组名(默认为false,需要改成true)
store_path0=/data/hexin/fastDFS/storage #文件存放路径,与storage 一致
group_count = 0 #0代表单组,非零代表多组,一般设置几就为几组
[group1] #设置了group_count = 0,接下来就需要在文件尾部追加这1个group setting
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/hexin/fastDFS/storage

六、nginx配置文件说明

upstream fdfs_group1 {
        server 192.168.0.1:8889 weight=1 max_fails=2 fail_timeout=30s;
        server 192.168.0.2:8889 weight=1 max_fails=2 fail_timeout=30s;
}

//此部分是新增跳转到storage服务模块配置
server {
     #8889 端口值是要与/etc/fdfs/storage.conf中的 http.server_port=8889 相对应
     listen       8889;
     server_name  localhost;

     location / {
          root   html;
          index  index.html index.htm;
     }
     location ~/group1/M00 {
         ngx_fastdfs_module;
     }
}


//此部分是正常web地址对外nginx配置
server {
     listen       8888;
     server_name  localhost;
	 
	location /group1/M00 {
	     proxy_pass http://fdfs_group1;
     }
}

七、数据流程说明

1、客户端-->nginx-->ngx_fastdfs_module(同步集群storage数据+访问tracker获取storage存储信息)-->tracker(mod_fastdfs.conf配置文件)--->storage

2、客户端-->nginx-->gateway-->yyzt-file--->tracker--->storage

你可能感兴趣的:(运维)