FastDFS(安装以及初步使用)

 

代码:https://gitee.com/wcjr/spring-all-study

1.基础

1.1说明

●FastDFS是一 个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

●FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务 器集群提供文件上传、下载等服务。

●FastDFS服务端有两个角色:跟踪器(tracker) 和存储节点(storage) 。跟踪器主要做调度工作,在访问上起负载均衡的作用。

●存储节点存储文件,完成文件管理的所有功能:就是这样的存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value)方式表示,如: width=1024,

其中的key为width, value为1024。 文件metadata是文件属性列表,可以包含多个键值对。

●跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线.上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。

●为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。

●在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线.上提供服务。

●当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

●FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。

1.2fastDFS架构

先启动tracker、然后在启动storage(就是途中GroupA.....),

 

1.3fastDFS 下载

下载地址:https://github.com/happyfish100

2安装步骤

2.1基础文件安装

  1. gcc安装:yum install -y gcc-c++
  1. libevent安装: yum -y install libevent
  2. 先安装libfastcommon
    1. 解压:  tar -zxvf libfastcommon-1.0.51.tar.gz
    2. 进入文件夹下: cd libfastcommon-1.0.51
    3. 进行编译: ./make.sh
    4. 然后安装: ./make.sh install
  3. 安装 fastdfs
    1. 解压: tar -zxvf fastdfs-6.07.tar.gz
    2. 进入目录: cd fastdfs-6.07/
    3. 进行编译: ./make.sh
    4. 然后安装 ./make.sh install
    5. 进入到fastdfs/conf文件夹下,将其所有内容拷贝到/etc/fdfs/ :cp * /etc/fdfs/

必须先启动tracker然后在启动storage,不然storage心跳发不过去

 

2.2配置tracker服务

1.首先进入etc/fdfs文件夹下:cd /etc/fdfs

  1. 1修改 tracker.conf 文件:vim tracker.conf
    1. 修改(数据文件/日志文件)存储地址: /home/local/fastdfs/tracker
    2. 记得先创建文件夹: mkdir /home/local/fastdfs/tracker -p

  1. 2启动:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf  (/usr/bin/fdfs_trackerd 地址/tracker.conf)

2.3配置storage服务

1.首先进入etc/fdfs文件夹下:cd /etc/fdf

2.编辑storage.conf:vim storage.conf

        2.1修改组名为(自己指定一个):qystorage

        2.2修改(数据文件/日志文件)存储地址: /home/local/fastdfs/storage以及 store_path0

        2.3配置刚刚tracker服务启动的服务器ip【tracker_server】

        2.4注意 web server port   (配合nginx需要用到)=》http.server_port=8888

  

        2.5创建刚刚指定的目录:mkdir /home/local/fastdfs/storage -p

3.启动:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf  (/usr/bin/fdfs_storaged 地址/tracker.conf)

2.4测试运行 

1.进入etc/fdfs 文件夹下: cd /etc/fdfs
2.配置 clinet.conf文件:vim client.conf
        2.1修改base_path路径:/home/local/fastdfs/client
        2.2创建:mkdir /home/local/fastdfs/client
        2.3然后修改:tracker_server

3.进入到/usr/bin 文件夹下 找到fdfs_test\

4.进行文件上传测试

        4.1准备一个文件

        4.2进行上传测试:/usr/bin/fdfs_test /etc/fdfs/client.conf upload /opt/files/ts1.jpg
        4.3/usr/bin/fdfs_test /etc/fdfs/client.conf upload 文件
        4.4fdfs_test命令 加载 client.conf配置 upload  上传文件

        4.5上传之后虽然发现有地址,但是访问却不成功,因为需要nginx
        4.6文件保存路径就是之前设置的 /home/local/fastdfs/storage/data下

 2.5配置nginx fastDFS

Nginx一定要和storage安装在同一个节点上(上面storage安装在/usr下。所以nginx也需要安装在/usr下。默认地址就是)

2.5.1安装fastdfs-nginx-module

1.解压fastdfs-nginx-module文件:tar -zxvf fastdfs-nginx-module-1.22.tar.gz
2.配置config:
        2.1先进入src目录cd fastdfs-nginx-module-1.22/src
        2.2配置config文件:vim config 
        2.3修改ngx_module_incs以及CORE_INCS。修改为/usr/include

        2.4 由于include是在usr下,所以修改为这个地址

3.将mod_fastdfs.conf 拷贝放在/etc/fdfs下,和其他配置文件一起【mod_fastdfs是和nginx相互联调使用到的】
        3.1 cp mod_fastdfs.conf /etc/fdfs 

2.6安装nginx

1.安装pcre : yum install -y pcre pcre-devel
2.安装 zlib:yum install -y zlib zlib-devel
3.安装openssl: yum install -y openssl openssl-devel
4.创建一个临时目录给nginx使用:mkdir /var/temp/nginx -p
5.获取/fastdfs-nginx-module/src的路径(先进入 fastdfs-nginx-module(注意版本号)/src)

6.进入之前fastFDS相关文件夹下,解压文件:tar -zxvf nginx-1.21.0.tar.gz
7.进入nginx(解压后的安装包)文件夹下 然后添加模块
        7.1 先执行:./configure \
        7.2 然后添加:--add-module=/opt/fastDFS/fastdfs-nginx-module-1.22/src
        7.3 --add-module=fastdfs-nginx-module地址

8. 指定nginx安装目录:./configure --prefix=/usr/local/nginx  (这一步可不要)
9. 回车之后输入make 回车;然后在输入 make install 回车

        9.1  注意nginx安装完毕之后会显示安装在哪了

10. 进入/etc/fdfs下:cd /etc/fdfs/ 
 11. 修改mod_fastdfs.conf: vim mod_fastdfs.conf
        11.1 修改base_path:/home/local/fastdfs/tmp

        11.2 修改trcker_server=172.16.0.11:22122

        11.3 修改group_name:qystorage    (和storage中一样)

        11.4 修改:url_have_group_name=true  (url中可见组名)

 12. 修改:store_path0=/home/local/fastdfs/storage

13. 然后保存。最后别忘记创建文件夹:mkdir /home/local/fastdfs/tmp -p
14. 进入安装nginx的文件夹下(不是解压包的位置,make install之后会显示地址) 

        14.1 进入nginx的conf文件夹下,修改一下配置文件。修改port修改为storage.conf中http.server_port相同 

以及添加这个

     location /qystorage/M00{ ##M00是虚拟路径

           ngx_fastdfs_module;

        }

15. 启动nginx (nginx /conf文件夹下启动 ../sbin/nginx -t    =>-t代表测试启动)

16. 获取进入nginx 目录 ./sbin/nginx启动

17. 注意,如果服务器版本高。则nginx需要最新版本,以免因为版本而出现的问题。同时注意nginx的安装位置一定要和fastFDS在同一个位置

2.7 查看分布式上传的文件

http://111.230.182.125:8888/qystorage/M00/00/00/rBAAC2DPQO2AII4xAD7d_ki1eeE595.jpg

Ip+端口+分组名+M00+分配的文件夹+文件名称

3运行中遇到得问题

上传文件过程中出现得错误

1. Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processingfailed; nested exception is com.github.tobato.fastdfs.exception.FdfsConnectException: 无法获取服务端连接资源:can't create connection to/*:23000] with root cause

   答:java.net.SocketTimeoutException: connect timed out
遇到这个错误。本次解决:是因为当初设置 tracker.conf 、mod_fastdfs.conf、vim client.conf(服务器上面自测会使用到) 设置得ip全是内网ip而不是公网ip。设置为公网ip就行了

 2. 客户端连接服务端出现了io异常:socket io exception occured while receive conte

    答:是因为关于fastFDS得配置没有配置好   如下配置就行

# 分布式文件系统fastdfs配置
fdfs:
  # socket连接超时时长
  so-timeout: 1500
  # 连接tracker服务器超时时长
  connect-timeout: 600
  pool:
    #从池中借出的对象的最大数目(配置为-1表示不限制)
    max-total: -1
    #获取连接时的最大等待毫秒数(默认配置为5秒)
    max-wait-millis: 500
    #每个key最大连接数
    max-total-per-key: 50
    #每个key对应的连接池最大空闲连接数
    max-idle-per-key: 10
    #每个key对应的连接池最小空闲连接数
    min_idle_per_key: 5
  # 缩略图生成参数,可选
  thumb-image:
    width: 150
    height: 150
  # 跟踪服务器tracker_server请求地址,支持多个,这里只有一个,如果有多个在下方加- x.x.x.x:port
  tracker-list: 111.230.182.125:22122

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值