fastdfs文件系统搭建

 1,FastDFS基本介绍:

FastDFS 系统有三个角色,跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接Tracker,告知自己所属 group 等信息,并保持周期性心跳。

Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。

Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。这里免不了放一张余庆老师介绍 FastDFS 的 PPT 中的一张架构图,清晰的说明了上述职责及关系:

这里免不了放一张余庆老师介绍 FastDFS 的 PPT 中的一张架构图,清晰的说明了上述职责及关系:


fastdfs文件系统搭建_第1张图片

上述架构优点:

1.高可靠性:无单点故障

 2.高吞吐性:只要 Group 足够多,数据流量将足够分散。

那么怎么上传下载以及同步文件这么操作呢?我在这就不详细说全部流程了,大概上传流程就是客户端发送上传请求到Tracker Server服务器,接着Tracker Server服务器分配group和Storage Server,当然这是有一定规则的,选择好Storage Server后再根据一定规则选择存储在这个服务器会生成一个file_id,这个file_id 包含字段包括:storage server ip、文件创建时间、文件大小、文件 CRC32 校验码和随机数;每个存储目录下有两个 256 * 256 个子目录,后边你会知道一个Storage Server存储目录下有好多个文件夹的,storage 会按文件file_id进行两次 hash ,路由到其中一个子目录,然后将文件存储到该子目录下,最后生成文件路径:group 名称、虚拟磁盘路径、数据两级目录、file_id和文件后缀就是一个完整的文件地址。

2,FastDFS 在 CentOS 下配置安装部署

一、安装 libfastcommon 和 FastDFS

1,下载安装 libfastcommon ,这里是通过wget下载:

 wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

解压 libfastcommon,命令:

tar -zxvf V1.0.7.tar.gz

移动解压目录到/usr/local下:

mv libfastcommon-1.0.7/usr/local/


编译,进入libfastcommon-1.0.7目录,命令:

cd/usr/local/libfastcommon-1.0.7./make.sh

2安装,命令:

./make.shinstall

显示这样的画面,就是安装 libfastcommon 成功啦。

2,下载安装 FastDFS,这里也是通过wget下载

wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

解压 FastDFS ,命令:

tar -zxvf V5.05.tar.gz

移动解压目录到/usr/local下:

mv fastdfs-5.05//usr/local/

编译,进入fastfds-5.05目录,命令:

cd /usr/local/fastdfs-5.05./make.sh

安装,命令:

./make.sh install

fastdfs文件系统搭建_第2张图片

显示这样的画面,就是安装 FastDFS 成功啦。

二、配置 Tracker 服务

上述安装成功后,在/etc/目录下会有一个fdfs的目录,进入它。会看到三个.sample后缀的文件,这是作者给我们的示例文件,我们需要把其中的tracker.conf.sample文件改为tracker.conf配置文件并修改它。参照以下命令:

cd /etc/fdfs/

cp tracker.conf.sample tracker.conf

vim tracker.conf

// 编辑tracker.conf文件,找到你需要修改的两个参数就可以了,我这里不做修改,用默认的

# thebasepathtostore dataandlog files// 数据和日志的存放目录

base_path=/home/yuqing/fastdfs

# HTTP port on this tracker server// http服务端口

http.server_port=8070

修改完成后我们需要建立tracker的工作目录,不然启动报错(上面base_path配置的目录)

mkdir -p  /home/yuqing/fastdfs

启动tracker服务:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

查看监听:

ps -ef|grep fdfs 或 netstat -lnpt|grep fdfs


看到trackerd服务正常启动后,这时候就算 Tracker服务安装成功啦!

三、配置 Storage 服务

现在开始配置 Storage 服务,由于我这是单机器测试,你把 Storage 服务放在多台服务器也是可以的,它有 Group(组)的概念,同一组内服务器互备同步,这里不再演示。直接开始配置,依然是进入/etc/fdfs的目录操作,首先进入它。会看到三个.sample后缀的文件,我们需要把其中的storage.conf.sample文件改为storage.conf配置文件并修改它。参照以下命令:

cd /etc/fdfs/

cp storage.conf.sample storage.conf

vim storage.conf

打开storage.conf文件后,找到下面参数进行修改:

# the base path to store data and log files // 数据和日志的存放目录

base_path=/home/yuqing/fastdfs

# path(disk or mount point) count, default value is 1 // storage在存储文件时支持多路径,默认只设置一个(下面store_path0配置的数量个数)

store_path_count=1

# store_path#, based 0, if store_path0 not exists, it's value is base_path // 配置多个store_path路径,从0开始,如果store_path0不存在,则base_path必须存在

# the paths must be exist

// 此处可以配置多个路径,如:store_path0=xx, store_path1=xx,store_path2=xx

// 多个项目的文件按照文件夹分割,通过/usr/bin/fdfs_upload_file [storage_ip:port] [store_path_index] 选择storage服务器和store_path角标上传到相应的项目下

store_path0=/home/yuqing/fastdfs

# tracker_server can ocur more than once, and tracker_server format is // 设置tracker_server

#  "host:port", host can be hostname or ip address

tracker_server=192.168.2.121:22122


修改完成后我们需要建立tracker的工作目录,不然启动报错(上面base_path配置的目录和store_path0配置的目录)

mkdir-p /home/yuqing/fastdfs

启动storage服务:

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

查看监听:

ps -ef|grep fdfs 或 netstat -lnpt|grep fdfs


很好,22122 和 23000端口都在监听了,这个时候你去/home/yuqing/fastdfs文件夹下看的话,会出现一大堆文件夹,而且进去还有一大堆,哈哈,这就是存放文件的啦!

到这里,我们安装配置并启动了 Tracker 和 Storage 服务,也没有报错了。那他俩是不是在通信呢?我们可以监视一下:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf


fastdfs文件系统搭建_第3张图片

看到我红线处ACTIVE这样就 ok 啦!

四、配置 fdfs_upload_file 上传文件

依然是进入/etc/fdfs的目录操作,首先进入它。会看到三个.sample后缀的文件,我们需要把其中的client.conf.sample文件改为client.conf配置文件并修改它。参照以下命令:

cd /etc/fdfs/

cpclient.conf.sample client.conf 

vim client.conf

找到下面参数进行修改:

# the base path to store log files // 日志的存放目录

base_path=/home/yuqing/fastdfs

# tracker_server can ocur more than once, and tracker_server format is // tracker_server服务的地址和端口号

#  "host:port", host can be hostname or ip address

tracker_server=192.168.2.121:22122

修改完成后我们就可以通过/usr/bin/fdfs_upload_file命令上传文件了,/usr/bin/fdfs_upload_file 命令用法:

[root@localhost fdfs]# /usr/bin/fdfs_upload_file

Usage: /usr/bin/fdfs_upload_file [storage_ip:port] [store_path_index]

// 命令 配置文件 上传的文件 storage_ip和端口 store_path角标


你可能感兴趣的:(fastdfs文件系统搭建)