简介

角色

  1. 跟踪器(tracker)
    主要做调度工作,在访问上起负载均衡的作用
  2. 存储节点(storage)
    存储系欸但存储文件,完成文件管理的所有功能

术语

TrackkerServer:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server 的状态,是链接Client 和 Storage Server 的枢纽。

Storage Server :存储服务器,文件和 meta data 都保存到存储服务器上

group:组,也成为卷,同组内服务器上的文件是完全相同的

文件标识:包括两部分:组名和文件名(包含路径)

meta data:文件相关属性,键值对(Key Value Pair)方式,如: key=a,value=123

meta data 可存可不存,但存了更清晰!

同步机制

  1. 同一组内的 storage server 之间是对等的,文件上传、删除等操作可以在任意一台 storage server 上进行;
  2. 文件同步只在同组内的 storage server 之间进行,采用 push 方式,即源服务器同步给目标服务器;
  3. 源头数据才需要同步,备份数据不需要再次同步,否则就构成环路(死循环);
上述第二条规则有个例外情况,就是新增加一台 storage server 时,由已有的一台 storage server 将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器

安装

安装地址

fastdfs:

GitHub:happyfish100/fastdfs

libfastcommon:

GitHub:happyfish100/libfastcommon

C语言环境

由于 fastDFS 是 C语言开发,故需保证C语言环境

centos

yum -y install cmake make gcc-c++

ubuntu

apt-get install 'g++'
apt-get install make cmake

安装核心库

#新建目录
mkdir -p /opt/fastdfs
#上传libfastcommon-1.0.43.tar.gz 到该目录 然后解压
tar -zxvf libfastcommon-1.0.43.tar.gz
cd libfastcommon-1.0.43/
#编译
./make.sh
#安装
./make.sh install

安装

#上传fastdfs-6.06.tar.gz到 /opt/fastdfs 目录下并解压
tar -zxvf fastdfs-6.06.tar.gz
#编译
cd fastdfs-6.06/
./make.sh
#安装
./make.sh install

跟踪器(Tracker)配置

配置

#创建Tracker存储节点目录
mkdir -p /fastdfs/tracker
#修改配置文件
cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
vim /etc/fdfs/tracker.conf
#修改Tracker存储节点目录
base_path = /fastdfs/tracker
#保存退出

启动

cd /etc/init.d/
./fdfs_trackerd start
#查看进程是否启动成功
ps -ef | grep fdfs

开机启动

不推荐开机启动,建议手动启动

centos

vim /etc/rc.d/rc.local
#加入
/etc/init.d/fdfs_tracked start

Ubuntu

#查看/etc/rc.local 是否存在
cat /etc/rc.local
#不存在主动创建
touch /etc/rc.local
#编辑 rc.local
vim /etc/rc.local
#!/bin/bash
cd /etc/init.d/
./fdfs_trackerd start
exit 0

存储节点(storage)配置

#创建存储节点(storage)目录
mkdir -p /fastdfs/storage/base
mkdir -p /fastdfs/storage/store
​
#修改配置文件
cd /etc/fdfs/
cp storage.conf.sample storage.conf
vim /etc/fdfs/storage.conf
#修改storage存储节点目录
base_path = /fastdfs/storage/base
#修改存放文件目录store_path0
store_path0 = /fastdfs/storage/store
#修改tracker_server ip地址为 tracker 机器的ip ,本地的话请填写局域网ip,不能为127.0.0.1或localhost
tracker_server = 192.168.0.2:22122
#保存退出

启动

cd /etc/init.d/
./fdfs_storaged start
#查看进程是否启动成功
ps -ef | grep fdfs

开机启动

不推荐开机启动,建议手动启动

centos

vim /etc/rc.d/rc.local
#加入
/etc/init.d/fdfs_storaged start

Ubuntu

#查看/etc/rc.local 是否存在
cat /etc/rc.local
#不存在主动创建
touch /etc/rc.local
#编辑 rc.local
vim /etc/rc.local
#!/bin/bash
cd /etc/init.d/
./fdfs_storaged start
exit 0

客户端(client)配置

使用命令行测试,不是必须
mkdir -p /fastdfs/client
​
cd /etc/fdfs
cp client.conf.sample client.conf
​
vim client.conf
#修改storage存储节点目录
base_path = /fastdfs/client
#修改tracker_server ip地址为 tracker 机器的ip ,本地的话请填写局域网ip,不能为127.0.0.1或localhost
tracker_server = 192.168.0.2:22122

上传

以上传libfastcommon-1.0.43.tar.gz 为例:

cd /usr/bin/
./fdfs_upload_file /etc/fdfs/client.conf /opt/fastdfs/libfastcommon-1.0.43.tar.gz
​
#或者
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/fastdfs/libfastcommon-1.0.43.tar.gz

返回

group1/M00/00/00/wKgAAmDQTm2AHlDaAAKKfr3HBzE.tar.gz

对应存储节点位置为:

cd /fastdfs/storage/store/data/00/00/
ll
wKgAAmDQTm2AHlDaAAKKfr3HBzE.tar.gz

删除文件

cd /usr/bin/ 
./fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgAAmDQTm2AHlDaAAKKfr3HBzE.tar.gz
如果觉得我的文章对你有用,请随意赞赏