FastDFS 安装配置

本文以  FastDFS  5.03 源码包作为基础的介绍。

1、背景

公司购买了一套语音分析系统,每天有30G的电话录话需要转换成为文本,然后在语音系统自定义的格式中打上标签,以提供给WEB前端搜索与回放。打标签后的数据约是原始录音的10倍大小,也就是每个月大概有 30G x 10倍 x 30天 = 9T 的数据需要存放,计划最长保留一年的历史数据,总共约 9T x 12个月 = 108T 。

在这里,需要考虑到的问题是

A、容量,108T是理想数值,还需要计算做Raid损耗 + 文件系统损耗 + 文件碎片空间损耗等等,所以至少需要再预多 30% 的空间松动,即 108T x 1.3 = 140.4T。按当前6T一块盘计算,总共需要24块,共144T。以后要求保留更长时间,如何扩容?

B、灾备,硬件会出现故障,数据全压在一台机器上可行不?对于服务器一般正常使用故障率还是比较低的,但还是有可能存在,当出现故障时就是大故障,机器里的数据无法使用,报修需要时间长时一个月,短时三个工作日,所以需要考虑是否系统能接受的故障时长。这里要求支持灾备,需要至少多一份拷贝,也就是 288T,两台服务器。

C、IOPS,如此大容量数据,检索范围之广,速度将是个问题,更需要考虑IOPS问题。(关于IOPS的计算百度上已经有很多介绍。)

D、价格,专业存储确实是在各方面支持很到位,但这也需要在价格上体现它的价值,对于每次的采购都是一笔不菲的数字。我在该项目上的经费只有25W,计划8台高性能机器(语音分析属于密集型运算),在各个方面的花费都需要细细推敲。

因此,我们需要选择一套合适的方案来支持以上的能力,因此引申出使用FastDFS的计划。

2、关于FastDFS

FastDFS是一个由阿里巴巴开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。

可以帮我解决以上问题:

A、容量,只要新加低配置机器,能挂载上硬盘,它能横向无限扩展。

B、灾备,FastDFS本身有分组的概念,把机器分为同组时,数据自动同步,无需人工干预。

C、IOPS,加机器加硬盘,IOPS也相当于横向无限扩展,而且互不干扰。

D、价格,系统非常轻量,对机器要求不高,一般8核8G内存就可以跑得很溜了,主要还是硬盘的花费多一点点。

3、系统结构定型

4、官网与下载

5、安装

    • 依赖包,libevent

      yum -y install libevent

    • 解包

      tar zxvf FastDFS_v5.03.tar.gz

    • 编译与安装(自带脚本没有提供修改安装路径的功能)

      cd FastDFS

      sh make.sh

      sh make.sh install

    • 设置为服务

      cp $源码包/init.d/* /etc/init.d/

      chkconfig add fdfs_trackerd

      chkconfig add fdfs_storaged

    • 启动

      service fdfs_trackerd start  ##在调度服务器,启动调度服务

      service fdfs_storaged start  ##在存储服务器,启动存储服务

6、常用文件说明

/etc/fdfs client.conf 客户端配置
http.conf 支持HTTP协议的配置,
mime.types HTTP对文件类型处理方式声明
mod_fastdfs.conf nginx扩展配置
storage.conf 存储程序的配置,重要
tracker.conf 调度程序的配置,重要
/usr/local/bin/ fdfs_trackerd 调度程序
fdfs_storaged 存储程序
fdfs_upload_file 客户端程序——上传文件
fdfs_delete_file 客户端程序——删除文件
fdfs_download_file 客户端程序——下载文件
fdfs_file_info 客户端程序——查看文件信息
fdfs_monitor 维护程序

7、常用配置

A、存储部分(storage.conf)

## 存储服务相关

group_name = group1     ## 设置该存储的分组名,相同名字自动认为同一组,用于数据同步

port = 23000                       ## 监听端口,默认23000

work_threads=10               ## 工作进程数

log_level=info                    ##日志等级

run_by_group=fdfs            ##运行的用户组

run_by_user=fdfs                ##运行的用户

##网络相关

connect_timeout=30        ##连接超时时间,单位秒

network_timeout=60         ##静止连接超时时间,单位秒

heart_beat_interval=30    ##存储之间的心跳探测频率,单位秒

stat_report_interval=60     ##向管理服务汇报的频率,单位秒

max_connections=1024   ##最大连接数

buff_size = 1024KB              ##缓存空间

allow_hosts=192.16.100.[1-255]        ##同意访问的IP地址,默认为 *

##文件相关

sync_wait_msec=50             ##文件同步频率,单位毫秒

sync_interval=0                     ##文件同步频率,0为无时间间隔

sync_start_time=00:00          ##文件可同步时间范围——开始时间

sync_end_time=23:59          ##文件可同步时间范围——结束时间

base_path=/data/fastdfs    ##存放存储服务索引数据与日志的目录

store_path_count=4             ##本机用于存储的分区数,这里有4个分区,就有对应的store_path

store_path0=/data1/            ##存放数据的目录,store_path0是必需的,其它按需增加

store_path1=/data2/

store_path2=/data3/

store_path3=/data4/

tracker_server=192.16.100.6:22122    ##调度服务地址

tracker_server=192.16.100.7:22122    ##多个调度服务则一行行往下加

B、调度服务(tracker.conf)

port=22122               ##服务端口,默认22122

base_path=/data/fastdfs            ##存放调度服务数据与日志的目录

store_lookup=2        ##上传文件时选择存储组的方式,0轮询;1指定;2容量均衡

store_group=           ##当store_lookup选择1时,该参数必需指定存储组

store_server=0          ##上传文件时选择组内服务器的方式,0轮询;1IP排序首位;2权重排序首位

store_path=2            ##上传文件的路径选择,0轮询;1无该值;2容量均衡

download_server=0                    ##选择下载服务器的方式,0轮询;1最后上传文件的服务器

reserved_storage_space=10%   ##为每组预留一定量的空间,超过该容量值时不再上传文件

allow_hosts=192.16.100.[1-255]        ##同意访问的IP地址,默认为 *

check_active_interval=120              ##检查存储存活的频率,单位秒

storage_ip_changed_auto_adjust=true        ##当存储服务的IP变化时是否自动调整

storage_sync_file_max_delay=86400          ##存储服务之间的文件同步最大延迟时间

storage_sync_file_max_time=300                ##存储服务之间同步文件的最大时间

##以上两个参数仅供调度服务参考,不影响存储服务之间的同步

use_trunk_file=false    ##是否使用trunk文件来合并多个小文件,默认关闭,

##有大量小文件可以打开,像个盒子装着多个内容,

##可解决节点太多的问题,下载时一定要用客户端处理后下载,

##包括nginx也需要添加模块才能解析出来。

8、相关工具

A、上传工具

fdfs_upload_file <config_filename> <local_filename> [storage_ip:port] [store_path_index]

<config_filename>:指定客户端配置文件,必填项

<local_filename>:本地要上传的文件路径,可相对路径也可以是完整路径,必填项

[storage_ip:port]:指定存储IP和端口,选填项

[store_path_index]:指定存储路径,选填项

执行成功后返回存储的完整路径,在FastDFS内部称为文件id。

eg:

]#/usr/local/bin/fdfs_upload_file   /etc/fdfs/client.conf   /tmp/install.log

group3/M00/00/00/AAA-Bx-OSjU119.log

B、文件查看工具

fdfs_file_info <config_file> <remote file id>

<config_file>:指定客户端配置文件,必填项

<remote file id>:指定要查看的文件ID,即上传时返回的完整路径

执行成功后返回文件信息,包括存储服务器IP、ID、文件创建时间、大小、校验码。

eg:

]# /usr/local/fdfs/bin/fdfs_file_info /etc/fdfs/client.conf group3/M00/00/00/AAA-Bx-OSjU119.log

source storage id: 0

source ip address: 192.168.100.10

file create timestamp: 2016-12-30 14:48:59

file size: 15879

file crc32: 529418805 (0x1F8E4A35)

C、下载工具

fdfs_download_file <config_file> <remote file id> [local filename] [<download_offset> <download_bytes>]

<config_file>:指定客户端配置文件,必填项

<remote file id>:指定要查看的文件ID,即上传时返回的完整路径,必填项

[local filename]:本地保存路径,选填项

<download_offset>:下载文件的位移量,用于断点续传,与bytes成对出现,选填项

<download_bytes>:文件的下载量,用于断点续传,与offset成对出现,选填项

执行成功后无任何返回

D、删除工具

fdfs_delete_file <config_file> <file id>

<config_file>:指定客户端配置文件,必填项

<file id>:指定要查看的文件ID,即上传时返回的完整路径,必填项

执行成功后无任何返回

E、维护工具

fdfs_monitor <config_file> [-h <tracker_server>] [list|delete|set_trunk_server <group_name> [storage_id]]

<config_file>:指定客户端配置文件,必填项

-h <tracker_server>:指定调度服务器IP,仅IP不包括端口,选填项

list:列出系统结构,包括空间、分组信息和存储服务状态、信息等

delete:可操作删除指定存储

set_trunk_server:指定调度服务器的 leader

时间: 2024-10-14 13:05:28

FastDFS 安装配置的相关文章

FastDFS安装配置手册

FastDFS安装配置手册 目录 FastDFS安装配置手册... 1 一.         安装... 3 (一)       下载FastDFS安装包... 3 (二)       安装tracker. 3 1.      安装... 3 2.      配置... 5 3.      运行... 5 (三)       安装storage. 6 1.      安装... 6 2.      配置... 8 3.      运行... 8 (四)       在storage上安装ngin

fastdfs安装,配置

一:fastdfs安装 1.需要装备的包  fastdfs5.10  libevent-2.0.18-stable.tar  libfastcommon-master 2.先安装libfastcommon-master unzip libfastcommon-master.zip cd libfastcommon-master ./make.sh ./make.sh install libfastcommon 默认安装到了/usr/lib64/libfastcommon.so/usr/lib64

单节点Nginx+FastDFS安装配置&lt;1&gt;

FastDFS 是一个开源的高性能分布式文件系统(DFS). 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡. FastDFS有两个角色:跟踪服务(tracker)和存储服务(storage),跟踪服务控制,调度文件以负载均衡的方式访问:存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管理文件的元数据. FastDFS 系统有三个角色:跟踪服务器(Tracker Server).存储服务器(Storage Server)和客户端(Clien

FastDFS安装配置过程

由于网站使用nfs共享方式保存用户上传的图片,附件等资料,然后通过apache下载的方式供用户访问,在网站架构初期,使用这种简单的方式实现了静态 资源的读写分离,但随着网站数据量的增加,图片服务器渐渐成为整个网站的短板,缘次催生了使用fastfds的想法,故而先进行一番简单的测试!在开始之 前还是先来看看fastfds的介绍信息: FastDFS is an open source high performance distributed file system (DFS). It's majo

FastDFS安装配置

安装libevent tar zxvf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21 ./configure && make && make install ln -s /usr/local/lib/libevent* /lib64/ 安装FastDFS tar zxvf tar zxvf FastDFS_v4.08.tar.gz cd FastDFS sed -i 's/#WITH_LINUX_SERVICE=1/WIT

FastDFS安装、配置、部署(一)

摘要: FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站 声明:对于分布式的一些技术点在网上都可以查到,这边对于一些基本的操作做了些相关的总结,并作为分布式框架技术的支持文档,希望可以帮助到大家 FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点

FastDFS的安装配置(2)

FastDFS的安装配置 环境介绍:centos6.8 1.下载源码包(github站点) fastdfs-master.zip  # 依赖 libfastcommon-master libfastcommon-master.zip 2.编译安装 (a)首先安装 libfastcommon-master # unzip libfastcommon-master.zip # cd libfastcommon-master/ # cat INSTALL # ./make.sh       --> 确

fastdfs及php扩展在ubuntu14.04的安装配置

一:简单介绍     FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服务,如相册网站.视频网站等等.FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage).跟踪器主要做调度工作,在访问上起负载均衡的作用. FastDFS 是一个 C 语言实现的开源轻量级分布式文件系统,作者余庆(happyfish100),支持 Linux.Fre

FastDFS安装、配置、API使用(一)-安装和部署

FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站 FastDFS有两个角色:跟踪服务(tracker)和存储服务(storage),跟踪服务控制,调度文件以负载均衡的方式访问:存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管理文件的元数据 跟踪和存储服务可以由1台或者多台服务器组成,同时可以动态的添加,删除跟踪和存储服务