A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小江哥 黑马粉丝团   /  2019-9-4 11:09  /  2289 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

FastDFS有两个重要的角色:跟踪服务器(tracker)和存储服务器(storage)。
  1. 存储服务器(storage server)   FastDFS中的storage是采用分组(group)的方式来存储文件。
  一个group中可以由一个或多个storage server组成,同一个group中的storage server是互备关系,即同一个group中的每个storage server相互进行文件同步(由专门的线程来完成),最终达到每个storage server中存储的文件是完全一致的。
  一个storage集群是由一个或多个group组成。storage集群的存储总容量是集群中所有的group的存储总容量之和。由于同一个group中的storage server是互备关系,因此每个group的存储总容量是该group中存储容量最小的storage server的存储容量。因此,同一个group中的storage server的硬件配置应尽量保持一致,以免造成浪费。\
storage server提供了文件上传、文件删除、文件访问(下载)等基础的功能。文件访问(下载)可以通过使用 nginx 扩展模块来完成(即每个storage server中都需要安装一个nginx应用)。
  2. 跟踪服务器(tracker server)   FastDFS中的tracker主要的作用是负载均衡和调度。tracker server可以有多个,tracker server之间是对等的关系,没有主从之分。当客户端连接tracker server时,如果tracker server有多个,客户端会任意选择其中的一个来连接。storage server会周期性定时的向集群中的所有tracker server报告其分组和状态等信息(storage server会通过启动一个单独的线程来完成)。
  3. 客户端(client)   以文件上传为例,client、tracker server、storage server的顺序。

4. 部署概况            角色     IP     端口   
               tracker     10.10.10.121     22122   
         tracker     10.10.10.122     22122   
         tracker     10.10.10.123     22122   
         storage     10.10.10.121     22122   
         storage     10.10.10.122     22122   
         storage     10.10.10.123     22122      5. 安装清单     
  注:FastDFS的基础详细安装可参考「 FastDFS分布式文件系统搭建 」。
  
  注:本文示例每台虚拟机都分别安装一个 tracker 和一个 storage 。 10.10.10.121 10.10.10.122 10.10.10.123 三台机器安装和配置均相同,按以下步骤进行。
  5.1 libfastcommon 安装   解压缩并进入解压缩后的文件夹的根目录:
  # tar zxvf libfastcommon-1.0.36.tar.gz && cd libfastcommon-1.0.36  执行编译安装:
  # ./make.sh && ./make.sh install  5.2 fastdfs 安装   解压缩并进入解压缩后的文件夹的根目录:
  # tar zxvf fastdfs-5.10.tar.gz && cd fastdfs-5.10  执行编译安装:
  # ./make.sh && ./make.sh install  
  安装完成之后,在系统的 /etc 路径下会自动生成一个 /fdfs 目录,该目录下是 FastDFS 相关的一些示例配置文件。
  将当前路径下 conf 目录里面的 anti-steal.jpg,http.conf,mime.types 复制到 /etc/fdfs 目录中:
  # cp conf/anti-steal.jpg conf/http.conf conf/mime.types /etc/fdfs/  5.2.1 tracker 配置    将 /etc/fdfs/tracker.conf.sample 重命名为 /etc/fdfs/tracker.conf :
  # mv /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf  编辑 tracker 配置文件:
  # vi /etc/fdfs/tracker.conf  主要配置及说明:
  # 端口port=22122## 连接超时时间,单位秒,默认是30connect_timeout=30## 网络超时时间,单位秒,默认是60network_timeout=60## 数据文件和日志文件存储的基路径base_path=/home/fanlychie/fastdfs## 最大并发连接数max_connections=256## 上传文件时,选group的策略# 0:轮询group# 1:使用特定的group# 2:选择可用空间最大的groupstore_lookup=2## 指定文件上传到哪个group。当store_lookup设置为1时,必须指定这个group的名称。当store_lookup是其它值时该属性可以不设值store_group=group1## 上传文件时,选storage server的策略# 0:轮询# 1:根据配置的IP的顺序# 2:根据配置的优先级store_server=0## 上传文件时,选存储介质(磁盘或挂载点)的策略# 0:轮询# 1:优先使用最大可用空间的路径store_path=0## 下载文件时,选storage server的策略# 0:轮询# 1:当前文件上传的源storage serverdownload_server=0## 系统保留的存储空间reserved_storage_space = 1%## HTTP端口http.server_port=8080  5.2.2 storage 配置    将 /etc/fdfs/storage.conf.sample 重命名为 /etc/fdfs/storage.conf :
  # mv /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf  编辑 storage 配置文件:
  # vi /etc/fdfs/storage.conf  主要配置及说明:
  # 所属group的名称group_name=group1## 端口port=23000## 连接超时时间,单位秒,默认是30connect_timeout=30## 网络超时时间,单位秒,默认是60network_timeout=60## 数据文件和日志文件存储的基路径base_path=/home/fanlychie/fastdfs/storage## 最大并发连接数max_connections=256## 文件存储的路径。可以配置多个store_path0=/home/fanlychie/fastdfs/storage#store_path1=/home/fanlychie/fastdfs/storage1## tracker server的IP和端口。如果有多个则配置多行tracker_server=10.10.10.121:22122tracker_server=10.10.10.122:22122tracker_server=10.10.10.123:22122  5.2.3 client 配置    将 /etc/fdfs/client.conf.sample 重命名为 /etc/fdfs/client.conf :
  # mv /etc/fdfs/client.conf.sample /etc/fdfs/client.conf  编辑 client 配置文件:
  # vi /etc/fdfs/client.conf  主要配置及说明:
  # 数据文件和日志文件存储的基路径base_path=/home/fanlychie/fastdfs## tracker server的IP和端口。如果有多个则配置多行tracker_server=10.10.10.121:22122tracker_server=10.10.10.122:22122tracker_server=10.10.10.123:22122  5.3 fastdfs-nginx-module 安装   解压缩并进入解压缩后的文件夹的根目录:
  # tar zxvf fastdfs-nginx-module_v1.16.tar.gz && cd fastdfs-nginx-module   编辑 src/mod_fastdfs.conf :
  # vi src/mod_fastdfs.conf  主要配置及说明:
  # tracker server的IP和端口。如果有多个则配置多行tracker_server=10.10.10.121:22122tracker_server=10.10.10.122:22122tracker_server=10.10.10.123:22122## 如果请求的url地址中包含了group_name(如“group1/M00/00/00/xxx”)则应设为true。# 如果请求的url地址中不包含group_name(如“/M00/00/00/xxx”)则应设为false。url_have_group_name = true## 文件存储的路径。可以配置多个# 必须配置与本机storage.conf中配置的store_path0路径相同store_path0=/home/fanlychie/fastdfs/storage#store_path1=/home/fanlychie/fastdfs/storage1   复制文件 src/mod_fastdfs.conf 到 /etc/fdfs/ 目录下:
  #cp src/mod_fastdfs.conf /etc/fdfs/   编辑 src/config :
  #vi src/config   找到 CORE_INCS 的配置行,去掉路径中的 /local ,改为如下并保存退出:
  CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"  5.4 nginx 安装    由于 FastDFS 提供的HTTP服务较为简单,它无法提供负载均衡等高性能的服务。因此, FastDFS 通常会结合 Nginx 来使用。安装 Nginx 所需的依赖有:
  
  • nginx 的 gzip 模块(压缩)需要依赖 zlib 库
  • nginx 的 ssl 模块(支持 HTTPS)需要依赖 openssl 库
  • nginx 的 rewrite 模块(支持 URL 重写)需要依赖 pcre 库
  5.4.1 pcre 安装   解压缩并进入解压缩后的文件夹的根目录:
  #tar zxvf pcre-8.36.tar.gz &&cdpcre-8.36  执行编译安装:
  #./configure && make && make install  创建软连接(64位系统):
  #ln -s /usr/local/lib/libpcre.so.1 /lib64  创建软连接(32位系统):
  #ln -s /usr/local/lib/libpcre.so.1 /lib  5.4.2 zlib 安装   解压缩并进入解压缩后的文件夹的根目录:
  #tar zxvf zlib-1.2.11.tar.gz &&cdzlib-1.2.11  执行编译安装:
  #./configure && make && make install  5.4.3 openssl 安装   解压缩并进入解压缩后的文件夹的根目录:
  #tar zxvf openssl-1.0.2l.tar.gz &&cdopenssl-1.0.2l  执行编译安装:
  #./config && make && make install  5.4.4 nginx 安装   解压缩并进入解压缩后的文件夹的根目录:
  #tar zxvf nginx-1.12.1.tar.gz &&cdnginx-1.12.1   编译安装( 注意修改 --add-module 的路径 ):
  #./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src/ && make && make install  
  –add-module 的路径需要改成你服务上上面配置好的 fastdfs-nginx-module 对应的路径。
  编辑 nginx 配置文件:
  #vi /usr/local/nginx/conf/nginx.conf  添加如下配置:
  location /group1/M00 {    root /home/fanlychie/fastdfs/storage/data/;    ngx_fastdfs_module;}  
  root 指定到 storage 配置的 ${base_path}/data/ 目录下。
  
  ngx_fastdfs_module 是 FastDFS 模块名称,该名称固定不需要改变。
  5.5 启动服务   5.5.1 tracker   启动命令:
  # fdfs_trackerd /etc/fdfs/tracker.conf start  停止命令:
  # fdfs_trackerd /etc/fdfs/tracker.conf stop  重启命令:
  # fdfs_trackerd /etc/fdfs/tracker.conf restart  5.5.2 storage   启动命令:
  # fdfs_storaged /etc/fdfs/storage.conf start  停止命令:
  # fdfs_storaged /etc/fdfs/storage.conf stop  重启命令:
  # fdfs_storaged /etc/fdfs/storage.conf restart  5.5.3 nginx   启动命令:
  #/usr/local/nginx/sbin/nginx  停止命令:
  #/usr/local/nginx/sbin/nginx -s stop  重新加载命令:
  #/usr/local/nginx/sbin/nginx -s reload         
  10.10.10.121 10.10.10.122 10.10.10.123 三台机器的tracker配置相同。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马